Patent ES-2584102-T3 (ES)
Title: Sistema y método para procesamiento transaccional de baja contención y descentralizado altamente escalable
Inventor: JIMENEZ PERIS RICARDO
IPC: G06F17/30
Filed: 2012-11-16
Granted: 2016-09-23
Abstract: Sistema de gestión de datos transaccional distribuido según un modelo cliente-servidor caracterizado porque - en el lado del servidor el sistema de gestión de datos transaccional se descompone en diferentes componentes que son: o un componente de servidor de commit, o un componente de servidor de snapshot, o al menos dos componentes de gestores de transacciones, o al menos un componente de gestor de conflictos, o al menos un componente logger, o al menos un componente de gestor de datos, en el que diferentes componentes están asignados a diferentes nodos, - en el lado del cliente, una o más aplicaciones adaptadas para interaccionar directa o indirectamente con el servidor, estando adaptada cada aplicación para i. conectarse a un componente de gestor de transacciones, ii. realizar más de cero interacciones de las etapas siguientes: 1. pedir a un componente de gestor de transacciones que comience una transacción; 2. pedir al componente de gestor de transacciones más de cero operaciones de lectura y escritura, 3. pedir al componente de gestor de transacciones que comprometa o aborte la transacción, iii. recibir una notificación por el componente de gestor de transacciones de que la transacción se ha completado o bien comprometiendo o bien abortando, - en el que cada componente de gestor de transacciones está adaptado para comenzar, abortar y comprometer transacciones y ejecutar operaciones de lectura y escritura tras la petición de sus aplicaciones conectadas, - en el que el componente de servidor de commit está adaptado para enviar a cada gestor de transacciones etiquetas desde una secuencia ordenada, de manera que, cada etiqueta sólo se envía a un componente de gestor de transacciones, las etiquetas se envían por el componente de servidor de commit o bien de manera proactiva o bien de manera reactiva tras la petición de componentes de gestores de transacciones, en el que esta secuencia ordenada de etiquetas representa la secuencia de transacciones comprometidas, - en el que el componente de servidor de snapshot está adaptado para: 1. recibir las etiquetas usadas y descartadas procedentes de los componentes de gestores de transacciones, en el que las etiquetas descartadas son aquellas etiquetas producidas por el componente de servidor de commit pero no usadas para etiquetar ninguna transacción de actualización y las etiquetas usadas son etiquetas usadas para etiquetar una transacción de actualización cuyas escrituras son duraderas y legibles desde el componente de gestor de datos con una snapshot con una etiqueta igual que o posterior a su etiqueta de commit, 2. notificar etiquetas de snapshot a los componentes de gestores de transacciones o bien de manera proactiva o bien de manera reactiva tras la petición de los componentes de gestores de transacciones, de manera que cualquier etiqueta de snapshot proporcionada por el componente de servidor de snapshot a los componentes de gestores de transacciones garantiza que el componente de servidor de snapshot recibió todas las etiquetas iguales o inferiores a esta etiqueta, - en el que cada componente de gestor de transacciones también está adaptado para: 1. asignar como etiqueta de comienzo para comenzar una transacción una, entre las obtenidas desde el componente de servidor de snapshot, posterior a o igual que la última usada para la transacción anterior, 2. asignar como etiqueta comprometida a una transacción de actualización dispuesta a comprometer una de las etiquetas no usadas recibidas desde el componente de servidor de commit, marcándola como usada, 3. transferir cada operación de lectura con la etiqueta de comienzo a un componente de gestor de datos, 4. tras completarse una transacción, enviar una petición de registro con todos los cambios realizados por 5 la transacción a un componente logger, 5. tras la notificación de commit desde el componente logger, notificar la aplicación sobre el commit de transacción,