2012-11-16 4 views
11

Il semble qu'il n'y ait pas une telle interface ..Comment obtenir le nombre exact de touches dans leveldb fast?

Dois-je itérer toutes les clés pour obtenir le nombre?

Quel est le but de conception de cela? Ou quelle est la limitation de l'implémentation de cette fonctionnalité?

+0

Oui, vous devez parcourir toutes les clés, sauf si vous implémentez votre propre comptage d'enregistrements lorsque vous insérez/supprimez des enregistrements (ce qui devrait être assez facile). – Kiril

Répondre

9

"Il n'existe aucun moyen d'implémenter Count plus efficacement à l'intérieur de leveldb qu'à l'extérieur." États OFFICIELS issue 113

On dirait qu'il n'y a pas de meilleure façon de le faire, à l'exception soit itérer l'ensemble jeu de données ou mettre en œuvre votre propre application dans en écriture contre.

1

Probablement lors de la création de LevelDB, cette API n'était pas requise pour les auteurs originaux. Malheureusement, LevelDB n'a pas d'API d'incrémentation que vous pouvez utiliser pour enregistrer le comptage. Ce que vous pouvez faire maintenant, c'est lire et écrire une clé dans Leveldb, mais ce n'est pas sûr pour les threads.

Peut-être pourriez-vous jeter un oeil à Redis, si elle est mieux adaptée à votre cas d'utilisation.

Questions connexes