Imagine que su requisito es que tiene 3 tablas enormes (datos estructurados) con, digamos, 30 mil millones de filas en cada una (tamaño total de 4 TB) y sus muchos usuarios concurrentes (que son hilos de sistema operativo paralelos en máquinas LAN remotas) necesitarán leer una parte de los datos a través de sus consultas SELELCT WHERE GROUPBY y altamente concurrentes, digamos 10,000 lecturas concurrentes al mismo tiempo y también los usuarios necesitan insertar (sin actualizar) datos en estas tablas altamente concurrentes también como 2000 escritores concurrentes (en toda la red LAN del centro de datos) . Los usuarios desearían leer e insertar lo más rápido posible de este almacenamiento donde cada lectura y escritura se realizará en un rango de ms a 1 segundo.
¿Qué tecnologías recomienda para satisfacer tal requisito? ¿Hay algún almacenamiento de datos o almacén de valores clave que pueda hacer esto? La nube NO es una opción.
Algunas aclaraciones:
Los usuarios NO tienen que ver los datos de inmediato y la consistencia eventual es aceptable. Se accede a los datos a través de cualquier controlador que pueda proporcionar el almacenamiento y los usuarios nuevamente son solo hilos que se ejecutan en máquinas remotas del centro de datos. Las consultas son principalmente como SELECCIONAR DONDE GROUPBY.
Los datos están en formato tabular y cada fila tiene aproximadamente 60 bytes.
No hay opción de nube donde no puedo usar DynamoDB o soluciones similares. Tengo que poder alojarlo internamente en el centro de datos.
Todos los datos de las tablas se pueden leer todo el tiempo y el patrón de uso es impredecible. No hay unión o consulta super larga. No se requiere DR, pero se requiere un HA razonable, pero no tiene que ser elegante. Todos los lectores obtienen lotes de filas según su cláusula where y las filas no están realmente relacionadas. Probablemente podamos tener una longitud fija para cada fila, pero espero que la capa de almacenamiento se preocupe por eso.
Además, mi mayor preocupación son todas esas escrituras concurrentes que ocurren con lecturas concurrentes.
Sus ideas sobre esto son muy apreciadas.
Y más, tengo tres de esas tablas con cada 30 mil millones de filas que contienen diferentes tipos de objetos