2011-01-27 4 views

Répondre

3

de support pour la cohérence de deux C, mais la notion de cohérence dans la PAC signifie que « tous les nœuds voir les mêmes données en même temps »et la notion de cohérence dans ACID signifie que« toute transaction effectuée par la base de données la fera passer d'un état cohérent à un autre ». (De Wikipedia.)

1

Vous ne pouvez pas difficilement avoir une consistance significative sans atomicité. C'est pourquoi le théorème CAP définit le C comme il le fait.

Imaginez ce scénario simple:

Il y a une base de données avec deux comptes. Il n'y a pas d'argent dans notre base de données. Juste l'argent sur les deux comptes. Dans la base de données, l'argent est déplacé d'un compte à l'autre.

Sans atomicité, l'utilisateur peut lire les données lorsque l'argent a été déduit d'un compte alors qu'il n'a pas encore été écrit dans l'autre. Dans ce cas, le total général des deux comptes varierait d'une lecture à l'autre, ce qui devrait être impossible étant donné que de «nouveaux» fonds ne quittent pas ou n'entrent pas dans la base de données. Parler de cohérence d'une autre manière revient à penser qu'un booléen Java est «presque» vrai alors que le reste du monde le lit comme faux.

+1

BTW, en plus de ce que j'ai répondu ci-dessus, quand vous parlez d'autres types de "consistance" tels que "consistance éventuelle", appelez que l'empereur est nu. Laissez l'embarras d'expliquer au client pourquoi le rapport lit le mauvais montant pour les développeurs qui souhaitent "renommer" le problème. Parfois, la vérité est simple et dure. Les nouveaux types de "cohérence" sont introduits parce que la cohérence ne se redimensionne pas horizontalement et que la mise à l'échelle n'est pas à la mode. Malheureusement (ou heureusement), la nature, les mathématiques et la physique n'honorent pas la mode humaine (demandez aux ennemis de Galilée). –

Questions connexes