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

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.

主站蜘蛛池模板: 长泰县| 耒阳市| 湘乡市| 仲巴县| 孝义市| 缙云县| 绩溪县| 全南县| 闽侯县| 吉林市| 黄大仙区| 广昌县| 金华市| 库尔勒市| 岚皋县| 会昌县| 静海县| 绥德县| 武夷山市| 天台县| 西畴县| 罗山县| 康乐县| 贵溪市| 三都| 桐柏县| 翼城县| 舒城县| 温宿县| 本溪市| 泗洪县| 沅江市| 金门县| 周至县| 奈曼旗| 克东县| 都兰县| 封开县| 台安县| 汨罗市| 郁南县|