官术网_书友最值得收藏!

Introducing the ACID properties

One of the most significant obstacles that prevents traditional databases from achieving high availability is that they attempt to strongly guarantee the ACID properties:

  • Atomicity: This guarantees that database updates associated with a transaction occur in an all-or-nothing manner. If some part of the transaction fails, the state of the database remains unchanged.
  • Consistency: This assures that the integrity of data will be preserved across all instances of that data. Changes to a value in one location will definitely be reflected in all other locations.
  • Isolation: This attempts to ensure that concurrent transactions that manipulate the same data do so in a controlled manner, essentially isolating in-process changes from other clients. Most traditional relational database systems provide various levels of isolation with different guarantees at each level.
  • Durability: This ensures that all writes are preserved in nonvolatile storage, most commonly on disk.

Database designers most commonly achieve these properties via write masters, locks, elaborate storage area networks, and the like – all of which tend to sacrifice availability. As a result, achieving some semblance of high availability frequently involves bolt-on components, log shipping, leader election, sharding, and other such strategies that attempt to preserve the original design.

主站蜘蛛池模板: 红河县| 五大连池市| 海南省| 星子县| 崇阳县| 云龙县| 郴州市| 万载县| 咸丰县| 黎川县| 诸城市| 石渠县| 威信县| 丹阳市| 柳州市| 聂拉木县| 中宁县| 金平| 凌海市| 双峰县| 贺兰县| 黑水县| 潞西市| 麟游县| 根河市| 苏州市| 凤台县| 淮阳县| 南和县| 景德镇市| 焦作市| 安福县| 芦山县| 邯郸县| 建平县| 镇江市| 施甸县| 阳朔县| 德惠市| 平凉市| 遂川县|