2009-01-23 15 views
9

Je commence une recherche sur un projet qui devra fournir la sémantique ACID sur sa base de données.Implémentation de l'ACID

En raison de la nature des données, elles ne peuvent pas être stockées dans des systèmes standard (relationnels ou à valeur-clé).

Quelles sont les bonnes ressources sur la façon de mettre en œuvre des systèmes qui doivent fournir la sémantique ACID?

Ma recherche Google classique renvoie plus d'informations sur le système qui fournit déjà la sémantique ACID plutôt que sur la manière de mettre en œuvre de tels systèmes.

Répondre

5

ARIES est un algorithme populaire pour implémenter une base de données ACID (par exemple, SQL Server utilise cet algorithme).

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

soins de résumer ici? –

+0

Je vais certainement jeter un oeil à ces ressources. Cela semble être un bon point de départ. - Merci –

2

Timothy Leary - Comment faire fonctionner votre cerveau

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

+0

+1: Meilleure réponse que j'ai vu depuis longtemps. Gloire. –

+0

Pas exactement utile :) (À moins que l'expansion de l'esprit qui a suivi vous ait permis de résoudre le problème). –

+0

Le codage Vision Quest devrait probablement être réservé au développement de compilateur/système d'exploitation et à l'ingénierie inverse. Je ne peux pas imaginer que cela fonctionne bien pour les bases de données. –

1

Si vous connaissez l'allemand, je recommande

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

"Einführung", ce qui signifie "introduction", est un understatment brut. Le livre contient plusieurs chapitres sur la façon de disposer physiquement les données, WAL (écriture à l'avance), les historiques sérialisables et non sérialisables, le redémarrage après échecs, et bien plus encore.

Je doute, cependant, que vous vouliez vraiment écrire quelque chose comme ça. Dois-je vous rappeler qu'en théorie vous pouvez modéliser n'importe quelle structure de données en plus du modèle relationnel?

+0

Intéressant. Je voudrais certainement que je puisse lire l'allemand maintenant. Bien sûr, c'est bien que vous puissiez modéliser n'importe quoi sur une base de données relationnelle, mais que se passe-t-il si vous avez un jeu de données très spécifique, et s'il a un modèle de lecture très spécifique? La flexibilité d'une base de données relationnelle est gaspillée. –

+1

Mieux vaut perdre la flexibilité d'une base de données relationnelle que 6 mois de votre vie ... – Eloff

0

Jetez un oeil à la concurrence optimiste. Utilisez une approche STM (logiciel de mémoire transactionnelle) au lieu de verrouiller. Beaucoup plus rapide et plus facile à mettre en œuvre. Vous pouvez effectuer 10 000 ou 100 000 transactions ACID par seconde en utilisant le niveau d'isolement SERIALIZABLE. Pas besoin de relaxer la propriété d'isolation des transactions.

Aussi, je suggère d'envisager d'utiliser une structure de données partiellement persistante pour le cache en mémoire et éventuellement aussi pour les données sur disque. Il permet aux lecteurs qui ne sont jamais bloqués par des opérations d'écriture.

Voir http://bergdb.com/ pour la base de données sur laquelle je travaille. N'hésitez pas à me contacter pour discuter de ce sujet intéressant./Frans Lundberg

Et pour mon avis sur les propriétés ACID mal définies:

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