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

ACID

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.

主站蜘蛛池模板: 青海省| 共和县| 塘沽区| 肥乡县| 资源县| 巩义市| 同心县| 曲水县| 龙江县| 会同县| 扶风县| 汪清县| 绍兴县| 驻马店市| 贵南县| 靖州| 梅州市| 达尔| 布尔津县| 沁水县| 固阳县| 福建省| 武川县| 额济纳旗| 吴堡县| 类乌齐县| 吴旗县| 社旗县| 莱芜市| 南城县| 灵武市| 大丰市| 盐池县| 襄樊市| 崇义县| 广灵县| 德江县| 通辽市| 招远市| 安多县| 台北县|