Primero, proporcionemos un poco más de contexto a su pregunta. Como mencionas Google Spanner, la coherencia no se trata de ACID, sino del teorema de CAP.
En el teorema de CAP, consistencia significa linealidad.
- Cómo encontrar la suma de todos los números distintos cuyo MCM es N
- ¿Cómo es UMass para un estudiante universitario en ciencias de la computación para estudiantes interesados en IA? ¿Con qué otras universidades se compara?
- ¿Existe alguna analogía en la vida real con el concepto de expresiones regulares?
- Cómo interpretar 'lift' y 'odds ratio' en las reglas de asociación
- ¿Cuáles son las cuatro aplicaciones prácticas de la teoría de conjuntos en informática?
La linealización es una propiedad reciente y conlleva un sistema distribuido. Ahora, dependiendo de su sistema, puede ser que realmente no necesite Linerizability después de todo. Aunque es una garantía más débil, la consistencia informal es muchas veces suficiente para muchos sistemas distribuidos.
En cuanto a la disponibilidad, también es una garantía específica del sistema. Por lo tanto, depende de cuánto dinero pierda cada segundo que su sistema no esté disponible. Si puede pagar el costo de indisponibilidad, entonces tiene suerte. Muchos sistemas empresariales no pueden permitirse perder dinero mientras el sistema no está disponible, por lo que debe realizar compensaciones. Google Spanner hace que sea menos probable que la base de datos no esté disponible debido a TrueTime y al hecho de que Google controla cada parte de la infraestructura de la nube, desde dispositivos de hardware hasta redes.
Ahora, volviendo a tu pregunta. Supongo que elegir una base de datos distribuida ACID y de relación como Spanner es una opción mucho mejor que una tienda NoSQL en muchas situaciones. Para explicar por qué, voy a citar el trabajo de investigación de Google Spanner:
Creemos que es mejor que los programadores de aplicaciones se ocupen de los problemas de rendimiento debido al uso excesivo de transacciones a medida que surgen cuellos de botella, en lugar de siempre codificar la falta de transacciones.
Por lo tanto, si es difícil para los programadores de Google codificar sin transacciones, probablemente sea difícil para todos los demás, ¿verdad?