2017-06-01 4 views
1

J'utilise Apache Ignite 2.0 comme magasin de valeurs-clés. Ma clé sera de 10 à 15 chiffres et la valeur est un nombre entier unique. J'ai l'intention de stocker environ 500 millions de paires de clés-valeur. Sur l'analyse comparative, trouvé que pour stocker 1 million de telles entrées de valeur-clé, l'utilisation de la mémoire est d'environ 90 Mo. Pour stocker juste un nombre entier comme valeur, je ne veux pas investir un tel énorme mémoire. c'est-à-dire environ 90 octets par enregistrement ayant un seul entier comme valeur. Quelqu'un peut-il jeter un peu de lumière sur la façon dont je peux réduire les frais généraux de mémoire utilisés dans la clé. Y a-t-il des configurations? Comme je n'ai pas besoin de compression, puis-je réduire BinaryObjectImpl qui utilise 40Bytes ou d'autres méta-informations? Ou si quelqu'un peut mettre en évidence sur d'autres kv-magasins ou des technologies que je peux explorer pour stocker un grand nombre d'enregistrements (même quelques milliards) avec une moindre empreinte de la mémoire serait appréciée.Réduction de l'empreinte de la mémoire dans Apache Ignite 2.0

Mise à jour: J'utilise example-cache.xml comme ma configuration qui est livrée telle quelle sans aucune modification.

Merci à l'avance.

+0

Comment avez-vous calculé cette taille? Avez-vous essayé d'ajouter un million de paires de valeurs-clés supplémentaires et de calculer de nouveau la taille? –

Répondre

0

Si vous avez seulement besoin d'un magasin de valeurs-clés (pas de grille de données), avez-vous essayé MapDB? http://www.mapdb.org/

Il offre un stockage hors-tas et bien échelles. Nous l'avons utilisé avec succès dans quelques projets de stockage de cache.

+0

Salut Steve, merci pour votre réponse. J'ai vérifié mapdb. Je peux comprendre sa collection java illimitée. Mais comment puis-je l'échelle. Je n'ai vu aucune fonctionnalité de mise en cluster. – Carbonrock