Quelle est la meilleure solution si j'ai besoin d'une base de données avec un milliard d'objets et que j'ai besoin d'un accès immédiat (ou presque immédiat) à n'importe quel élément de la base de données à tout moment.Gérer le stockage de milliards d'informations?
Cette base de données serait interrogée à environ 1000 requêtes par seconde. Les lignes de la base de données ne sont pas apparentées et n'ont donc pas besoin d'être relationnelles.
Si vous êtes curieux de savoir pourquoi, c'est pour une simulation d'éléments en mouvement. Je pensais à quelque chose comme plusieurs grappes équilibrées de charge d'un Cassandra qui sont accessibles via un cluster de serveurs Web à charge équilibrée.
L'argent est un facteur, donc moins cher sera le mieux. Il n'y a aucune restriction sur le logiciel ou l'outil mais il doit être open source. Nous recherchons simplement une solution de base de données qui serait utile pour gérer une quantité ridicule de données (ne nécessitant aucun lien relationnel) par un grand nombre d'utilisateurs.
Il est essentiel qu'il gère la redondance et les échecs.
Juste une idée de haut niveau pour me mettre dans la bonne direction serait génial.
En moyenne, combien d'objets les 1000 req/sec doivent-ils collecter de vos milliards? Quelle corrélation y aurait-il entre les données sélectionnées par les différentes demandes? Quelle est la taille de chacun des milliards ou plus d'objets? Comment les objets sont-ils identifiés? –
Dites environ 10 ou 20 par demande. Il n'y a pas de corrélation (il y en a mais il sera calculé côté client). Chaque objet est vraiment juste dire environ 10 attributs de texte brut et des données de position 3D. Les objets seraient identifiés par une clé unique (ou si l'utilisateur était ciblé sur un emplacement spécifique) ils devraient être en mesure de voir tous les objets dans les unités X (donc il devrait y avoir une possibilité d'interroger la base de données pour seulement les résultats à l'intérieur d'une plage de X, Y et Z. Les autres attributs pourraient aussi être interrogés, mais ne donneraient qu'environ 10 à 20 ou 100 à la plupart des objets retournés). – jreid42
Pour clarifier vous ne pouvez pas dire me donner tous les objets avec l'attribut z == this. Ce serait toujours ... donnez-moi tous les objets dans les 200 unités de X, Y, Z ... alors vous pouvez également filtrer par leurs attributs (mais cela pourrait être fait côté client car il n'y en aurait pas autant dans le même Région). – jreid42