Triés Chaîne de Table (SSTable) ou B+ Tree pour un Index de Base de données?

À l'aide de deux bases de données pour illustrer cet exemple: CouchDB et Cassandra.

CouchDB

CouchDB utilise une Arborescence B+ pour l'index du document (à l'aide de un savant modification de travailler dans leur ajouter seulement de l'environnement) - plus précisément que les documents sont modifiés (insert/update/delete) ils sont annexés à l'exécution de fichier de base de données ainsi qu'une Feuille d' -> chemin d'accès du Nœud de l'arborescence B+ de tous les nœuds effectuée par la mise à jour de la révision à droite après le document.

Ces pièces mealed index des révisions sont intégrées tout au long de l'modifications telles que l'index complet est une union de la plus récente de l'indice des modifications ajoutées à la fin du fichier ainsi que d'autres pièces, plus en arrière dans le fichier de données qui sont toujours d'actualité et n'ont pas été modifiés encore.

La recherche de la B+ tree est O(logn).

Cassandra

Cassandra garde les clés d'enregistrement triée, en mémoire, dans les tableaux (pensons à eux sous la forme de tableaux pour cette question) et les écrit comme distinct (tri) triés-chaîne de tables de temps à autre.

Nous pouvons penser à la collection de toutes ces tables comme l ' "indice" (ce que je comprends).

Cassandra est nécessaire pour compact/combiner ces triés-chaîne de tables de temps à autre, la création d'un fichier complet de la représentation de l'index.

Recherche un tableau trié est O(logn).

Question

En supposant un même niveau de complexité entre le maintien partiel B+ tree morceaux dans CouchDB contre partielle triés-chaîne indices de Cassandra, et étant donné que les deux fournissent O(logn) temps de recherche qui pensez-vous serait de faire une meilleure représentation d'une base de données de l'index et pourquoi?

Je suis spécifiquement curieux de savoir si il y a un détail d'implémentation à propos de l'un sur l'autre, ce qui rend particulièrement attrayant ou si ils sont tous les deux de se laver et de vous il suffit de choisir selon la structure de données que vous souhaitez travailler avec/plus de sens pour le développeur.

Merci pour les pensées.

InformationsquelleAutor Riyad Kalla | 2011-12-28