- Cassandra 3.x High Availability(Second Edition)
- Robbie Strickland
- 201字
- 2021-07-14 10:24:21
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.
推薦閱讀
- Linux運維之道(第3版)
- 30天自制操作系統(tǒng)
- Mastering ElasticSearch
- Windows Server 2012 Hyper-V Cookbook
- Linux操作系統(tǒng)應用編程
- 奔跑吧 Linux內核(入門篇)
- macOS效率手冊
- 移動應用UI設計模式(第2版)
- 計算機系統(tǒng):基于x86+Linux平臺
- Python UNIX和Linux系統(tǒng)管理指南
- 跟老男孩學Linux運維:Shell編程實戰(zhàn)
- 鴻蒙操作系統(tǒng)設計原理與架構
- Linux操作系統(tǒng)
- Linux內核API完全參考手冊(第2版)
- Linux系統(tǒng)管理初學者指南:基于CentOS 7.6