2016-08-03 1 views
1

LSM Tree a été utilisé avec succès dans de nombreux moteurs no-sql, ses données sont triées par des clés non comme des tables de hachage permettant ainsi de nombreuses utilisations potentielles au-delà d'un kv store. Par exemple, une base de données de séries temporelles (TSDB) peut être un bon ajustement en utilisant le niveau db comme moteur. Qu'en est-il du SGBDR traditionnel et de nombreux systèmes de tables? Est-ce que les moteurs de données de type LSM-tree sont également adaptés?Utilisation de l'arbre LSM comme LevelDB comme moteur de stockage pour RDBMS

Répondre

1

Cela pourrait être. Si vous allez concevoir des index de manière à exploiter les points forts de leveldb (à savoir la lecture séquentielle rapide), cela pourrait bien fonctionner.

En fait, j'ai construit une petite base de données relationnelle au-dessus de leveldb (linqdb) où index est simplement trié les valeurs de colonne stockées en tant que valeurs-clés. Mes conclusions sont que l'interrogation d'une telle structure n'est pas aussi rapide que les colonnes indexées de sqlite (environ 40% plus lent) mais l'écriture surpasse de loin.

Bien sûr, il y a beaucoup de facteurs dans la vitesse de requête, LSM est juste une structure de données sous-jacente qui brille le mieux à l'écriture.

Informations complémentaires here

+0

En fait, nous essayons de construire un système de table, mais lecture ou écriture de lot peut être le cas d'utilisation typique. Actuellement, nous utilisons un index de hachage en mémoire, mais cela ne prend pas en charge la requête de plage et la requête triée. Je regarde LSM car il ne coûte pas beaucoup de mémoire et ses clés sont stockées en ordre. –

+0

@bugs king Le LSM est mieux adapté pour le disque (gros morceaux de données écrites comme dans le tri de fusion), donc je ne sais pas si c'est la meilleure chose dans l'index mémoire – ren

+0

J'ai trouvé qu'il y a un mysql basé sur lsm-tree est appelé myrocks, mais il y a des ressources trop limitées sur leurs performances et leur perspicacité de latence. –