Je travaille sur un système de clé-valeur distribuée (ou magasin de données), qui utilise levelDB comme bibliothèque de base de données intégrée dans le back-end.comment créer plusieurs tables logiques dans une instance DB unique?
Je souhaite qu'un noeud/machine héberge plusieurs tables (à des fins de réplication et d'équilibrage de charge). Je comprends que levelDB n'a aucune notion de tables, donc je ne peux pas partitionner logiquement mes données sous forme de tables (donc je ne peux pas utiliser ces tables comme unité de base de distribution).
Ma question est: Y a-t-il une possibilité d'avoir plusieurs 'tables logiques' en instance unique de niveauDB? D'après ce que je sais, je peux avoir plusieurs instances de levelDB en cours d'exécution sur mon nœud gérant chacune une table. Mais je ne veux pas faire cela, car dans ce cas il y aura une contention sérieuse (au disque je crois) lorsque ces multiples instances de DB sont accédées simultanément. Le fait d'avoir plusieurs tables logiques dans une seule instance de DB peut me donner des avantages sur les optimisations levelDB pour minimiser les accès disque.
Oui .. ressemble à ceci est la seule façon. Je pensais d'utiliser un répertoire de système de fichiers pour chaque tablette, mais apparemment, si vous ouvrez plusieurs répertoires (en utilisant Open (options,, et db)) seul répertoire dernier est utilisé pour le stockage de données. Et –
méthode ouverte de toute façon ne donne pas gestionnaire DB unique pour chaque répertoire (ou opération d'ouverture). –
Je ne sais pas comment vous avez réussi à ouvrir plusieurs répertoires avec une seule instance de LevelDB ... donc je ne sais pas ce que vous voulez dire que « seul le dernier répertoire est utilisé pour les données de stockage. » Si vous avez besoin de plusieurs répertoires, vous devez utiliser plusieurs instances LevelDB. – Kiril