¿Qué tipo de configuración se requeriría para fragmentar una base de datos en un billón de servidores? ¿Qué se requeriría para equilibrar la carga de las solicitudes?

Un billón es un gran número. Necesitaría una implementación para manejar grandes números. También necesitaría una función de hash que asigne su clave de fragmentación a un gran número entre 0 y (10 ^ 12-1).

Como seguramente tendrá servidores que fallan todo el tiempo, deberá considerar lo siguiente:

  • Patrones de acceso: ¿escribirás en lotes? Leer ordenado?
  • Redundancia de datos. ¿O puede permitirse perder datos? Lea sobre el teorema de CAP para algunos problemas que esto atrae. ¿Utiliza CRDT de soporte de casos?
  • Manejo de failover.
  • Manejo de la putrefacción de bits en el servidor mediante la reparación continua del clúster.
  • Dado que tendrá tantos servidores, seguramente tendrá que automatizar tareas como copias de seguridad, restauración y reequilibrio de datos y consolidación de datos faltantes.
  • Localidad de datos. Con tantos servidores habrá mucha chatiness entre ellos. Debes descubrir cómo minimizar esto. Usar un protocolo de chismes sería una alternativa. También podría dividir los servidores en jerarquías celulares.
  • Dónde almacenar sus servidores y cómo pagarlos 🙂

Eche un vistazo a Cassandra, HBase y Riak y cómo se implementan.

Por último, pero no menos importante, esta no es una pregunta realista. Pregunta de la entrevista?