应当了解的NoSQL 和 RDMS 理论基础

RDMS 即关系性数据库系统,其事务具有ACID 基本属性, 对于单节点的事务,RDMS是通过 two phase locking 或 multi-version 和恢复机制如日志技术保证事务的ACID. 对于分布式事务,则可以通过two phase commit 来保证事务的ACID.

ACID 模型

- Atomicity 原子性:事务是一个原子性操作单元,对数据的修改,要么全执行,要么全都不执行。

- Consistent 一致性:即事务开始和完成,必须保证数据一致性状态,则意味着所有数据规则应用于事务的修改,以保证数据的完整性,事务结束时,所有数据的内部结构必须正确。

- Isolation 隔离性:RDMS提供一定的隔离机制,保证事务不受外界并发操作影响的‘独立’环境执行。意味着事务处理过程的中间状态是不可见的。

- Durable 持久性:事务完成之后,对数据的修改是永久性的。即便发生系统故障也能保持永久性

CAP, BASE 是当下火热的NoSQL理论基础,具体来讲,

CAP 理论

- Consistency 一致性:是说数据的原子性,通过事务来保证的,当事务完成时,无论是成功还是回滚,数据都会处于一致性状态,在分布式中指的是多节点的数据是否一致。

- Availability 可用性:是说服务一直保证可用的状态,当用户发送请求在一定时间内返回结果。

- Partition Tolerance 分区容错性,是指网络的分区的数据具有容错能力,这也是分布式系统的基本要求。

BASE 理论

BASE 来自互联网领域的实践,它基于CAP逐步演化而来,核心思想即使不能达到强一致性(Strong Consistency), 但可以采用适当的方式达到最终一致性(Eventual Consistency)。

- Basically Available 基本可用;

- Soft State 软状态或柔性事务,即状态可以允许在一段时间内不同步;

- Eventual Consistency 最终一致性。

BASE 是反ACID的理论,不同于ACID模型,通过牺牲强一致性,来获得基本可用性,柔性可靠性,并到达最终一致性。所谓鱼和熊掌兼得也,平衡取舍之间见真谛。

你可能感兴趣的:(应当了解的NoSQL 和 RDMS 理论基础)