Je pense qu'il y a des mois. J'ai trouvé un projet open source de google qui peut stocker des paires de valeur clés à haute performance. Mais j'ai oublié le nom. Quelqu'un pourrait-il me le dire? ou vous pouvez avoir d'autres suggestions pour moi? J'ai utilisé BerkerlyDB, mais j'ai trouvé que BerkerlyDb n'est pas assez rapide pour mon programme. Cependant, berkerylyDB est pratique à utiliser car il apparaît comme un jar lib jar, qui peut être intégré à mon programme de façon transparente. Mon programme est également écrit en Java.quel magasin de keyvalue a la meilleure exécution?
Répondre
Deux concurrents puissants dans la DHT (Distributed Hash Table) 'marché':
Here est une présentation sur Cassandra. Sur la diapositive 20, vous verrez des repères de vitesse - 0,12 ms/écriture
(Vous pouvez rechercher autour de la présentation entière, y compris Eric Evans parlant)
Je pense que le projet voldemort vaut le coup d'oeil. Même si Redis répond à la question :) http://project-voldemort.com/ – Mobbit
Vous auriez besoin d'accéder à Redis via la connexion réseau, n'est-ce pas? Est-ce que ce serait assez rapide? –
Peut-être que vous devriez décrire ce que vous avez besoin fonctionnalités. Si elle n'a pas besoin d'être distribuée (est-ce?) Alors j'essaierais d'utiliser le H2 Database. Pour ceux qui pensent que "cela ne peut pas être rapide parce qu'il utilise SQL", veuillez noter que lorsque vous utilisez une instruction préparée, l'analyse SQL n'est effectuée qu'une seule fois. Disclaimer: Je suis l'auteur principal de H2.
Beaucoup de réponses semblent supposer automatiquement le besoin de distribution; mais cela semble étrange si la question fait référence à BDB. Dans cet esprit, au-delà de Redis et H2 (qui sont tous les deux bons), il y a aussi Tokyo Cabinet à considérer, ce qui semble offrir des avantages par rapport à BDB. Et une autre possibilité plus récente est Krati.
Personne ne mentionne leveldb et pourtant ce poste est en haut quand vous recherchez "bon magasin de valeur de clé". Leveldb dans mon expérience est tout simplement génial. C'est si vite que je ne pouvais pas le croire. J'ai essayé pas mal de bases de données pour une tâche que je faisais. J'ai essayé:
- fenêtres de stockage de table d'azur (taille chère, la valeur maximum 1 Mo et chaque taille de la propriété est au maximum de 64 Ko)
- Redis (génial si vous avez autant de RAM que vous s'il vous plaît)
- mongodb (impressionnant tant qu'il y a suffisamment de RAM, se brise après ce point)
- sql server (cher, nécessite une maintenance, comme la reconstruction des index et finalement pas encore assez rapide)
- sqlite (gratuit, mais pas aussi simple à utiliser comme leveldb et pas rapide)
- leveldb. Si vous pouvez modéliser votre travail en lisant de gros morceaux consécutifs de données à travers un itérateur, vous obtiendrez une grande vitesse. L'écriture est également assez rapide. Combinez-le avec le disque SSD et vous l'aimerez.
Curieux de savoir pourquoi vous mentionnez Azure Table Storage aussi cher? 100 millions de transactions coûtent environ 10 $ (avant rabais). Si vous chargez vos requêtes, cela compte comme une transaction. Vous pourriez en théorie écrire le numéro de sécurité sociale de tout le monde aux États-Unis et le relire (en utilisant le traitement par lots) pour moins de 1 dollar en transactions. Les coûts de stockage seraient à ce sujet aussi. –
@BartCzernicki Je pense à deux raisons: 1) J'ai vraiment eu beaucoup de transactions (en partie augmenté en divisant les données en morceaux de moins de 1 Mo) et je n'ai pas utilisé de lots (ne me souviens pas pourquoi). 2) Depuis que j'ai utilisé le stockage de table, j'ai également hébergé sur des machines virtuelles azurées (de sorte que les données transitent via l'intranet local) et que si je me souviens bien, 86 $ par petite instance par mois. En tout cas c'est "cher" par rapport à d'autres options et peut-être pas si cher en général, surtout s'il est optimisé (comme les lots, etc.) – ren
- 1. quel est le concept de magasin dans
- 2. meilleure façon de valeur magasin/de recherche par nom paires
- 3. paires Groupement Nested KeyValue au dictionnaire
- 4. exécution a été interrompue
- 5. Quel projet opensource java ou .net a la meilleure couverture de test unitaire?
- 6. Est-ce que Key.from_path a atteint le magasin de données?
- 7. Meilleure option pour le magasin de données Google App Engine et la base de données externe?
- 8. Quel jargon d'hibernation a la classe OracleDialect?
- 9. Existe-t-il des magasins KeyValue utilisés par .NET?
- 10. ConfigurationErrorsException « exécution a été interrompue » sur Membership.Provider
- 11. Durée magasin dans MySQL
- 12. Meilleure façon d'extraire les données du magasin de données GAE sous la forme d'une liste
- 13. Quel est l'obfuscator .Net avec la meilleure relation qualité/prix?
- 14. Meilleure façon d'utiliser une base de données PostgreSQL comme simple magasin de valeurs de clés
- 15. La meilleure façon de contrôler la sortie du processus ainsi que son exécution
- 16. Informations sur le magasin dans la RAM
- 17. Quelle est la meilleure structure d'installation git pour un magasin one man?
- 18. Quel énoncé Select a de meilleures performances?
- 19. Valeur booléenne du magasin dans SQLite
- 20. Any Meilleure pratique d'insertion d'enregistrements de table avec procédure de magasin SQL CLR?
- 21. Quel langage de programmation a cette syntaxe?
- 22. quel côté a plus de caractères
- 23. Un outil pour convertir la procédure de magasin mysql en MS SQL Server procédure de magasin?
- 24. secondes exécution de la commande précédente
- 25. rails3 magasin de session
- 26. Magasin de certificats Windows
- 27. Python: Quel chemin donne une meilleure précision
- 28. Grand magasin de données (nosql ou pas)
- 29. Quelle est la meilleure façon de détecter si un mot de NSString a un numéro?
- 30. Exécution de thread .Net
Vous auriez besoin d'y accéder via la connexion réseau, n'est-ce pas? Est-ce que ce serait assez rapide? –
Si vous les utilisez localement, vous n'avez pas besoin de connexion réseau. Et Cassandra écrit sont extrêmement rapides. – Bozho
Merci. Je me demande à quelle vitesse "extrêmement rapide" est réellement pour un seul cas d'utilisation de machine/processus unique. Connaissez-vous des chiffres ou des résultats de référence? Est-ce que Cassandra et HBase sont optimisés pour ce cas, sont-ils égaux pour ce cas d'utilisation? D'après ce que j'ai lu, ils sont tous deux spécialement conçus pour être distribués. –