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

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.

主站蜘蛛池模板: 都江堰市| 会理县| 绩溪县| 呼图壁县| 凤台县| 从江县| 巴塘县| 清新县| 大邑县| 南郑县| 兴文县| 蒲城县| 兴海县| 隆昌县| 盘锦市| 琼中| 昌邑市| 法库县| 威信县| 甘泉县| 丰县| 义乌市| 子洲县| 永定县| 光山县| 沿河| 根河市| 宁蒗| 延安市| 肃南| 墨玉县| 英山县| 响水县| 太保市| 虎林市| 临武县| 偏关县| 彭州市| 丹凤县| 东城区| 南川市|