Prevalencia del sistema


La prevalencia del sistema [1] es un patrón de arquitectura de software simple que combina imágenes del sistema (instantáneas) y registro de transacciones para proporcionar velocidad, escalabilidad del rendimiento, persistencia transparente y duplicación en vivo transparente del estado del sistema informático .

En un sistema predominante, el estado se mantiene en la memoria en formato nativo, todas las transacciones se registran y las imágenes del sistema se guardan periódicamente en el disco.

Las imágenes del sistema y los diarios de transacciones se pueden almacenar en un formato de serialización específico del idioma para mayor velocidad o en formato XML para la portabilidad entre idiomas.

El primer uso del término y la implementación genérica disponible públicamente de una capa de prevalencia del sistema fue Prevayler , escrito para Java por Klaus Wuestefeld en 2001. [2]

El simple hecho de mantener el estado del sistema en la RAM en su formato normal, natural y específico del idioma es mucho más rápido y fácil de usar para los programadores que las múltiples conversiones que se necesitan cuando se almacena y se recupera de un DBMS . Como ejemplo, Martin Fowler describe "La arquitectura LMAX " [3] con un sistema de negocios basado en un diario de transacciones y una imagen del sistema (instantánea) en su núcleo, que puede procesar 6 millones de transacciones por segundo en un solo hilo.

Un sistema predominante necesita suficiente memoria para mantener todo su estado en la RAM (la "hipótesis predominante"). Los defensores de la prevalencia afirman que esto se alivia continuamente con la disminución de los precios de la memoria RAM y el hecho de que muchas bases de datos comerciales ya son lo suficientemente pequeñas como para caber en la memoria.