2009-01-23 17 views
9

Estoy empezando a investigar sobre un proyecto que deberá proporcionar semántica de ACID en su base de datos.Implementación de ACID

Debido a la naturaleza de los datos, no es adecuado para el almacenamiento en los sistemas comunes disponibles (relacionales o clave-valor).

¿Cuáles son algunos buenos recursos sobre cómo implementar sistemas que deben proporcionar la semántica de ACID?

Mi búsqueda de Google típica devuelve más información sobre el sistema que ya proporciona la semántica de ACID en lugar de cómo implementar dichos sistemas.

Respuesta

5

ARIES es un algoritmo popular para implementar una base de datos ACID (por ejemplo, SQL Server usa este algoritmo).

  1. Wikipedia on ARIES
  2. The ARIES paper
+0

Cuidado de resumir aquí? –

+0

Definitivamente voy a echar un vistazo a estos recursos. Este parece ser un buen punto de partida. - Gracias –

2

Timothy Leary - Instrucciones de uso de Cerebro

http://www.youtube.com/watch?v=SQq_XmhBTgg

+0

+1: La mejor respuesta que he visto en mucho tiempo. Prestigio. –

+0

Sin embargo, no fue precisamente útil :) (A menos que la expansión de mente resultante le haya permitido resolver el problema). –

+0

La codificación de búsqueda de visión probablemente debería reservarse para el desarrollo del compilador/sistema operativo y la ingeniería inversa. No me puedo imaginar que funcione bien para las bases de datos. –

1

Si sabe alemán, lo recomiendo

  • Alfons Kemperer: Datenbanksysteme - Eine Einführung, ISBN 3486576909

"Einführung", que significa "introducción", es un vayáis bruto. El libro tiene varios capítulos sobre cómo diseñaría físicamente los datos, WAL (escritura anticipada), historiales serializables y no serializables, reinicio después de fallas y mucho más.

Sin embargo, dudo que realmente quieras escribir algo así. ¿Debo recordarles que, en teoría, pueden modelar cualquier estructura de datos sobre el modelo relacional?

+0

Interesante. Ciertamente me gustaría si pudiera leer alemán ahora mismo. Claro que es bueno que pueda modelar cualquier cosa en una base de datos relacional, pero ¿qué ocurre si tiene un conjunto de datos muy específico en mente, qué pasa si tiene un patrón de lectura muy específico? La flexibilidad de una base de datos relacional se desperdicia. –

+1

Es mejor perder la flexibilidad de una base de datos relacional que 6 meses de tu vida ... – Eloff

0

Eche un vistazo a la concurrencia optimista. Utilice un enfoque STM (memoria transaccional de software) en lugar de bloquear. Mucho más rápido y más fácil de implementar. Puede tener 10,000 o 100,000 transacciones ACID por segundo usando el nivel de aislamiento SERIALIZABLE. No es necesario relajar la propiedad de aislamiento de las transacciones.

Además, sugiero considerar el uso de una estructura de datos parcialmente persistente para la memoria caché en memoria y posiblemente también para los datos en el disco. Permite lectores que nunca están bloqueados por operaciones de escritura.

Ver http://bergdb.com/ para la base de datos en la que estoy trabajando. Siéntete libre de contactarme para discutir este interesante tema./Frans Lundberg

Y para mi opinión sobre las propiedades ACID mal definidos:

http://blog.franslundberg.com/2013/12/acid-does-not-make-sense.html