Sloučený strom strukturovaný pomocí protokolu - Log-structured merge-tree
Tento článek obsahuje seznam obecných Reference, ale zůstává z velké části neověřený, protože postrádá dostatečné odpovídající vložené citace.duben 2013) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
Sloučený strom strukturovaný pomocí protokolu | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Typ | Hybridní (dvě stromové komponenty) | ||||||||||||||||
Vynalezeno | 1996 | ||||||||||||||||
Vynalezl | Patrick O'Neil Edward Cheng, Dieter Gawlick, Elizabeth O'Neil | ||||||||||||||||
Časová složitost v velká O notace | |||||||||||||||||
|
v počítačová věda, sloučený strom strukturovaný protokolem (nebo LSM strom) je a datová struktura s výkonovými charakteristikami, díky nimž je atraktivní pro poskytování indexováno přístup k souborům s velkým objemem vložení, jako je data transakčního protokolu. Stromy LSM, jako jiné hledat stromy, udržovat páry klíč – hodnota. Stromy LSM udržují data ve dvou nebo více samostatných strukturách, z nichž každá je optimalizována pro příslušné podkladové úložné médium; data jsou synchronizována mezi dvěma strukturami efektivně, v dávkách.
Jedna jednoduchá verze stromu LSM je dvouúrovňový strom LSM.[1]Jak popisuje Patrick O'Neil, dvouúrovňový strom LSM obsahuje dva jako strom struktury zvané C0 a C.1. C0 je menší a zcela rezidentní v paměti, zatímco C1 je rezidentem na disku. Nové záznamy jsou vloženy do paměti C rezidentní0 součástka. Pokud vložení způsobí C0 komponenta k překročení určité prahové hodnoty velikosti, je souvislý segment položek odstraněn z C0 a sloučeny do C.1 na disku. Výkonnostní charakteristiky stromů LSM vycházejí ze skutečnosti, že každá komponenta je vyladěna na charakteristiky jejího podkladového úložného média a že data jsou efektivně migrována napříč médii v postupných dávkách pomocí algoritmu připomínajícího Sloučit třídění.
Většina LSM stromů používaných v praxi využívá více úrovní. Úroveň 0 je uložena v hlavní paměti a může být reprezentována pomocí stromu. Data na disku jsou organizována do tříděných běhů dat. Každý běh obsahuje data seřazená podle indexového klíče. Běh může být na disku zastoupen jako jeden soubor nebo alternativně jako kolekce souborů s nepřekrývajícími se rozsahy kláves. Chcete-li provést dotaz na konkrétním klíči a získat jeho přidruženou hodnotu, musíte hledat ve stromu úrovně 0 a při každém spuštění.
Konkrétní klíč se může objevit v několika bězích a to, co to znamená pro dotaz, závisí na aplikaci. Některé aplikace jednoduše chtějí nejnovější pár klíč – hodnota s daným klíčem. Některé aplikace musí nějakým způsobem kombinovat hodnoty, aby se vrátila správná agregovaná hodnota. Například v Apache Cassandra, každá hodnota představuje řádek v databázi a různé verze řádku mohou mít různé sady sloupců.[2]
Aby se snížily náklady na dotazy, musí se systém vyhnout situaci, kdy je příliš mnoho běhů.
Rozšíření metody „vyrovnání“ B + strom byly navrženy struktury, například bLSM[3] a rozdílový index.[4]
Stromy LSM se používají v datových úložištích, jako jsou Bigtable, HBase, LevelDB, SQLite4[5], Tarantool [6],RocksDB, WiredTiger[7], Apache Cassandra, InfluxDB[8] a ScyllaDB.
Reference
- ^ O'Neil 1996, s. 4
- ^ "Vyrovnané zhutnění v Apache Cassandra: DataStax". 13. února 2014. Archivovány od originál 13. února 2014.
- ^ http://www.eecs.harvard.edu/~margo/cs165/papers/gp-lsm.pdf
- ^ http://researcher.ibm.com/researcher/files/us-wtan/DiffIndex-EDBT14-CR.pdf
- ^ „SQLite4 with LSM Wiki“. SQLite.
- ^ "Aplikační server společně se správcem databáze". Citováno 3. dubna 2018.
Diskový úložný modul Tarantool je fúzí nápadů z moderních souborových systémů, logovaných strukturních sloučených stromů a klasických B-stromů.
- ^ „GitHub - wiredtiger / wiredtiger: zdrojový strom WiredTiger“. 4. prosince 2019 - prostřednictvím GitHub.
- ^ Dix, Paul (7. října 2015). „[Nový] Úložný modul InfluxDB | Časově strukturovaný sloučený strom“.
- Všeobecné
- O'Neil, Patrick E .; Cheng, Edward; Gawlick, Dieter; O'Neil, Elizabeth (Červen 1996). Msgstr "Sloučený strom strukturovaný pomocí protokolu (strom LSM)". Acta Informatica. 33 (4): 351–385. CiteSeerX 10.1.1.44.2782. doi:10,1007 / s002360050048.
- Li, Yinan; On, Bingsheng; Luo, Qiong; Yi, Ke (2009). "Indexování stromů na flash discích". 2009 IEEE 25. mezinárodní konference o datovém inženýrství. str. 1303–6. CiteSeerX 10.1.1.144.6961. doi:10.1109 / ICDE.2009.226. ISBN 978-1-4244-3422-0.
- Luo, Chen; Carey, Michael J. (Červenec 2019). "Techniky ukládání na bázi LSM: průzkum". Deník VLDB. arXiv:1812.07527. doi:10.1007 / s00778-019-00555-r.