RocksDB - RocksDB

RocksDB
Rocksdb-icon.svg
Původní autořiDhruba Borthakur
VývojářiFacebook
První vydáníKvěten 2012; před 8 lety (2012-05)
Stabilní uvolnění
6.14.5 / 18. listopadu 2020; Před 18 dny (2020-11-18)
Úložiště Upravte to na Wikidata
NapsánoC ++
Operační systémOkna, Operační Systém Mac, Linux, FreeBSD, OpenBSD, Solaris, AIX
Plošinax86, x86_64, ppc64, ppc64le, aarch64
TypVestavěná databáze
LicenceApache 2.0 nebo GPL 2
webová stránkarocksdb.org

RocksDB je vysoký výkon[1][2][3][4][5] vložená databáze pro klíč – hodnota data. Je to vidlice společnosti Google LevelDB optimalizováno pro využití mnoha Jádra CPU a efektivně využívat rychlé úložiště, jako je disky SSD (SSD), pro vstup výstup (I / O) vázané pracovní vytížení. Je založen na a sloučený strom strukturovaný do protokolu (LSM strom) datová struktura. Je napsán v C ++ a poskytuje oficiální jazykové vazby pro C ++, C, a Jáva; vedle mnoha jazykové vazby třetích stran. RocksDB je open-source software, a byla původně vydána pod a BSD 3-klauzule licence[6][7][8]. V červenci 2017 však byl projekt migrován na duální licenci jak pro Apache 2.0, tak pro licenci GPLv2[9], pravděpodobně v reakci na černou listinu Apache Software Foundation z předchozí licenční doložky BSD + Patents.[10][11]

RocksDB se používá v produkčních systémech u různých měřítko webu podniky[12] počítaje v to Facebook, Yahoo!,[13] a LinkedIn.[14]

Funkce

RocksDB, jako LevelDB, ukládá klíče a hodnoty do libovolných bajtových polí a data jsou řazena po bajtech podle klíče nebo poskytováním vlastního komparátoru.

RocksDB poskytuje všechny funkce LevelDB a navíc:

a další: Seznam funkcí RocksDB, které nejsou v LevelDB.

RocksDB není SQL databáze (i když MyRocks kombinuje RocksDB s MySQL ). Jako ostatní NoSQL a dbm ukládá, nemá žádný relační datový model a nepodporuje dotazy SQL. Rovněž nemá žádnou přímou podporu pro sekundární indexy, ale uživatel si může interně vytvářet vlastní pomocí Column Families nebo externě. Aplikace používají RocksDB jako knihovnu, protože neposkytuje rozhraní serveru nebo příkazového řádku.

Dějiny

RocksDB byl vytvořen v Facebook od Dhruby Borthakura[25][26] v dubnu 2012, jako vidlice LevelDB s původně stanoveným cílem zlepšit výkon pro pracovní vytížení serveru.[27][28]

Integrace

Jako vložitelnou databázi lze RocksDB použít jako úložný modul ve větším databáze systém řízení (DBMS). Například, Šváb používá RocksDB jako svůj úložný modul[29], většinou pro transakční úlohy, zatímco Rockset používá RocksDB hlavně pro analytické zpracování dat. To ukazuje, že RocksDB lze použít jako úložný modul pro oba Online zpracování transakcí a Online analytické zpracování.

Alternativní backend

Byly zahájeny následující projekty, které mají nahradit nebo nabídnout alternativní úložné moduly pro již zavedené databázové systémy s RocksDB:

ArangoDB

ArangoDB přidal RocksDB do svého předchozího úložiště ("mmfiles").[30] Počínaje ArangoDB 3.4 bude RocksDB výchozím úložištěm v ArangoDB.[31]

Cassandra

Cassandra on RocksDB může výrazně zlepšit výkon Apache Cassandra (3-4krát rychlejší obecně, 100krát rychlejší v některých případech použití).[Citace je zapotřebí ] Tým Instagramu na Facebooku vyvinul a otevřel svůj kód spolu s měřítky jejich výsledků výkonu.[32]

MariaDB

MariaDB může používat úložný modul MyRocks (který je vidlicový z RocksDB) od MariaDB 10.2.5 (stav Alpha) [33] a stabilní od MariaDB 10.2.16 v roce 2018.[34]

MongoDB

Projekt MongoRocks poskytuje modul úložiště pro MongoDB kde je úložný modul RocksDB.[35][36][37]

Souvisejícím programem je Rocks Strata, nástroj napsaný v Jít, což umožňuje správu přírůstkových záloh MongoDB, když se jako úložiště používá RocksDB.[38]

MySQL

Projekt MyRocks vytváří nový úložný modul založený na RocksDB pro MySQL.[39][40] Podrobné informace o MyRocks byly představeny na Percona Live 2016.[41]

Vestavěné

Následující databázové systémy a aplikace se rozhodly používat RocksDB jako svůj vestavěný úložný modul:

Ceph's BlueStore

The Ceph Úložná vrstva BlueStore používá RocksDB pro správu metadat v zařízeních OSD.[42]

Apache Flink

Apache Flink používá RocksDB k ukládání kontrolních bodů.[43]

FusionDB

FusionDB[44] používá RocksDB jako svůj úložný modul pro XML, Key / Value a JSON.[45]

LogDevice LogsDB

LogSDB LogDevice je postaven na vrcholu RocksDB.[46]

Rockset

The Rockset služba, která se používá pro analýzu provozních dat, používá RocksDB jako svůj úložný modul.[47]

SSDB

SSDB-skály[48] projekt používá RocksDB jako úložný modul pro SSDB[49] NoSQL databáze.

TiDB

TiDB[50] projekt používá RocksDB jako svůj úložný modul.[51]

Vazby jazyků třetích stran

Vazby programovacích jazyků třetích stran dostupné pro RocksDB zahrnují:

Reference

  1. ^ „Výkonnostní měřítka“. Citováno 29. listopadu 2015.
  2. ^ „Benchmarking rodiny leveldb“. Citováno 10. března 2016.
  3. ^ "Srovnání LevelDB a RocksDB, vezměte 2". Citováno 10. března 2016.
  4. ^ „Benchmarking LevelDB vs. RocksDB vs. HyperLevelDB vs. LMDB Performance for InfluxDB“. Citováno 10. března 2016.
  5. ^ Golan-Gueta, Guy; Bortnikov, Edward; Hillel, Eschar; Keidar, Idit (21. dubna 2015). "Škálování souběžných úložišť dat strukturovaných podle protokolu". Sborník EuroSys '15 z desáté evropské konference o počítačových systémech. doi:10.1145/2741948.2741973.
  6. ^ „Nejnovější snaha Facebooku o otevřený zdroj: databáze využívající technologii Flash s názvem RocksDB“. Citováno 10. března 2016.
  7. ^ „Under the Hood: Building and open-sourcing RocksDB“. Citováno 10. března 2016.
  8. ^ „RocksDB - databáze Facebooku je nyní otevřený zdroj“. Citováno 10. března 2016.
  9. ^ „Žádost o stažení GitHub“. Citováno 20. července 2017.
  10. ^ „Apache říká„ ne “kódovým knihovnám Facebooku“. Citováno 20. července 2017.
  11. ^ „Problém s GitHubem“. Citováno 20. července 2017.
  12. ^ "Users.md". Citováno 1. prosince 2015.
  13. ^ „RocksDB na steroidech“. Citováno 10. března 2016.
  14. ^ „Benchmarking Apache Samza: 1,2 milionu zpráv za sekundu na jednom uzlu“. Citováno 10. března 2016.
  15. ^ "Transakce RocksDB". GitHub. Citováno 2016-04-04.
  16. ^ „Jak zálohovat RocksDB?“. Citováno 2017-07-19.
  17. ^ „Kontrolní body“. Citováno 2017-07-19.
  18. ^ "Rodiny sloupců v RocksDB". GitHub. Citováno 2016-04-04.
  19. ^ "Blokové filtry RocksDB". GitHub. Citováno 2016-04-04.
  20. ^ "Podpora TTL RocksDB". GitHub. Citováno 2016-04-04.
  21. ^ „Univerzální zhutnění“. GitHub. Citováno 2016-04-04.
  22. ^ "Operátor sloučení RocksDB". GitHub. Citováno 2016-04-04.
  23. ^ "Kontext kontextu RocksDB a kontext IO statistik". GitHub. Citováno 2016-04-04.
  24. ^ "Prostorové indexování v RocksDB". rocksdb.org. Citováno 2018-07-19.
  25. ^ „První potvrzení, kde se RocksDB liší od LevelDB“. 10. května 2012. Citováno 15. března 2016.
  26. ^ "soubor README aplikace rocksdb". 30. listopadu 2012. Citováno 15. března 2016.
  27. ^ "The History of RocksDB". 24. listopadu 2013. Citováno 10. března 2016.
  28. ^ Borthakur, Dhruba (22. listopadu 2013). „RocksDB: Vysoce výkonný integrovaný úložiště klíč – hodnota pro úložiště Flash - Data @ Scale“. Citováno 10. března 2016. ... Příběh, proč jsme se rozhodli udělat RocksDB ...
  29. ^ Edwards, Jessica (2015-10-29). „Hello World: Meet CockroachDB, the Resilient SQL Database“. The New Stack. Citováno 2016-07-08.
  30. ^ „Porovnání nových úložných modulů RocksDB a MMFiles“.
  31. ^ „RC1 ArangoDB 3.4 - Co je nového?“.
  32. ^ „Open-sourcing a 10násobné snížení latence ocasu Apache Cassandra“.
  33. ^ „MyRocks“. MariaDB KnowledgeBase. Citováno 2019-04-28.
  34. ^ https://mariadb.com/kb/cs/mariadb-10216-release-notes/
  35. ^ „mongodb-partners / mongo-rocks“.
  36. ^ "Integrace RocksDB s MongoDB". Citováno 19. července 2018.
  37. ^ „MongoDB + RocksDB at Parse“. Citováno 1. prosince 2015.
  38. ^ "facebookgo / skály-vrstvy".
  39. ^ „facebook / mysql-5.6“.
  40. ^ „MyRocks: MySQL on RocksDB“ (PDF). Citováno 29. listopadu 2015.
  41. ^ „MyRocks Deep Dive“. Citováno 9. května 2016.
  42. ^ „Úložná zařízení - dokumentace Ceph“.
  43. ^ „Dokumentace Apache Flink 1.8: Stavové backendy“. ci.apache.org. Citováno 2019-08-11.
  44. ^ „FusionDB“. Vyvinutý binární.
  45. ^ „Návrh a implementace FusionDB“ (PDF). XML Praha.
  46. ^ "LogDevice: distribuované úložiště dat pro protokoly". Mark Marchukov, Facebook.
  47. ^ „How we use RocksDB at Rockset“. rockset.com. Citováno 2019-07-10.
  48. ^ „ideawu / ssdb-rocks“.
  49. ^ https://ssdb.io
  50. ^ „pingcap / tidb“.
  51. ^ „TiDB Internal (I) - Data Storage“. Shen Li.
  52. ^ „warrenfalk / rocksdb-sharp“.
  53. ^ „b1naryth1ef / rocksdb“.
  54. ^ „urbint / rox“.
  55. ^ "leo-project / erocksdb".
  56. ^ "barrel-db / erlang-rocksdb".
  57. ^ „tecbot / gorocksdb“.
  58. ^ "rocksdb-haskell: Haskell vazby na RocksDB".
  59. ^ "RocksJava".
  60. ^ "rocksdb".
  61. ^ „iabudiab / ObjectiveRocks“.
  62. ^ "Vazby OCaml pro RocksDB".
  63. ^ "Vazba OCaml RocksDb pomocí ocaml-ctypes".
  64. ^ „RocksDB - rozšíření Perlu pro RocksDB - metacpan.org“.
  65. ^ „Photonios / rocksdb-php“.
  66. ^ "Rozhraní SWI-Prolog pro RocksDB".
  67. ^ „stephan-hof / pyrocksdb“.
  68. ^ "rocksdb-ruby - RubyGems.org - váš hostitel klenotů komunity".
  69. ^ "spacejam / rust-rocksdb".

externí odkazy