Hay situaciones en las que le gustaría tener:
- La integridad de los datos garantiza las transacciones serializables.
- Los datos pueden ser actualizados por los usuarios a nivel mundial.
- Los datos se pueden actualizar con baja latencia.
Lamentablemente, la combinación de todo lo anterior no es físicamente posible. Estarás limitado por la velocidad de la luz.
En cambio, debe considerar sus requisitos exactos. Para algunos datos, la precisión limitada es lo suficientemente buena. Considere el contador de vistas en un video de YouTube. A la mayoría de las personas no les importa si el contador de vistas está temporalmente apagado. Si todavía no se incluyen las vistas que ocurrieron hace 10 segundos en el otro lado del mundo, pero se incluyen las vistas que ocurrieron hace 5 segundos más cerca, todavía es lo suficientemente preciso. Si está tan relajado con la integridad del contador de vistas, corre el riesgo de que dos personas diferentes puedan pensar que fueron el espectador número 100 de ese video en particular. Pero la mayoría de la gente consideraría que el daño causado por eso es insignificante.
En otros casos, la integridad de los datos es más importante. Considere dos personas que intentan registrarse simultáneamente con el mismo nombre de usuario. No es aceptable decirles a ambas personas que obtuvieron el nombre de usuario, por lo que en tal situación elegiría un enfoque más lento con mayor integridad. Es aceptable decirles a ambas personas que se tomó el nombre de usuario, por lo que un posible enfoque sería tratar de reservar el nombre de usuario en cada réplica y solo informar el éxito si tuvo éxito en más del 50% de las réplicas. No es improbable que este enfoque haga que el usuario espere medio segundo para obtener una respuesta. Pero los usuarios no pasan por este proceso con la frecuencia suficiente como para molestarse por ese retraso.
En otros casos, es posible que necesite buena integridad y actualizaciones rápidas, pero solo una persona puede actualizar esta información en particular. En ese caso, puede colocar la copia autorizada de los datos en un servidor que cree que está cerca de ese usuario, y dejar que otros servidores tengan una versión en caché, que en su mayoría está actualizada.