Imaginez que votre exigence est que vous ayez 3 énormes tables (données structurées) avec disons 30 milliards de lignes dans chacune (taille totale de 4 To) et vos nombreux utilisateurs simultanés (qui sont des threads OS parallèles sur des machines LAN distantes) devront lire une partie de les données via leurs requêtes SELELCT WHERE GROUPBY et hautement simultanées, par exemple 10 000 lectures simultanées en même temps et les utilisateurs doivent également insérer (pas de mise à jour) des données dans ces tables très simultanées également comme 2000 écrivains simultanés (partout sur le réseau LAN du centre de données) . Les utilisateurs voudraient lire et insérer le plus rapidement possible dans ce stockage où chaque lecture et écriture se produira dans une plage de ms à 1 seconde.
Quelles technologies recommandez-vous pour satisfaire une telle exigence? Y a-t-il un stockage de données ou un magasin de valeurs clés qui pourrait le faire? Le cloud n'est PAS une option.
Quelques clarifications:
Les utilisateurs n'ont PAS à voir les données immédiatement et la cohérence éventuelle est acceptable. Les données sont accessibles via n'importe quel pilote que le stockage peut fournir et les utilisateurs ne sont à nouveau que des threads exécutés sur des machines distantes du centre de données. Les requêtes sont principalement comme SELECT WHERE GROUPBY.
Les données sont au format tabulaire et chaque ligne fait environ 60 octets.
Aucune option cloud où je ne peux pas utiliser DynamoDB ou des solutions similaires. Je dois pouvoir l'héberger en interne dans le centre de données.
Toutes les données des tables peuvent être lues tout le temps et le modèle d'utilisation est imprévisible. Il n'y a pas de jointure ou de requête super longue. Aucun DR requis mais un HA raisonnable est requis mais cela n'a pas besoin d'être sophistiqué. Chaque lecteur reçoit un lot de lignes en fonction de sa clause where et les lignes ne sont pas vraiment liées. Nous pouvons probablement avoir une longueur fixe pour chaque ligne, mais j'espère que la couche de stockage s'en souciera.
De plus, ma plus grande préoccupation concerne toutes ces écritures simultanées qui se produisent avec des lectures simultanées.
Vos idées à ce sujet sont très appréciées.
Et plus encore, j'ai trois de ces tables avec chacune 30 milliards de lignes contenant différents types d'objets