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

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.

主站蜘蛛池模板: 竹山县| 阆中市| 个旧市| 兴国县| 前郭尔| 沁阳市| 黔南| 邵东县| 西城区| 古田县| 清新县| 深泽县| 崇左市| 蓬溪县| 宣武区| 双城市| 封丘县| 都匀市| 嘉义市| 诏安县| 临沭县| 莎车县| 临西县| 财经| 宜昌市| 章丘市| 安阳市| 平江县| 云梦县| 景德镇市| 开化县| 三河市| 阿克| 陕西省| 轮台县| 平武县| 蒲江县| 隆林| 洪雅县| 津南区| 保康县|