数据库一致性与其他技术概述
1. 弱一致性概述
强一致性的保证通常代价高昂,可能会导致操作无限期阻塞或中止,降低操作的可用性。而且,强一致性的要求可能过于严格,一些本可立即执行且不会引发问题的操作会被暂停。例如,在法定人数机制中,某个副本的响应可能比其他副本慢,从而使其他副本等待。此外,强一致性需要副本之间进行大量的同步,对于写操作频繁的系统来说,这会成为瓶颈。
弱一致性可以提高系统的整体性能,包括降低延迟和提高可用性,但它可能会导致数据冲突、不一致甚至数据丢失。乐观复制认为,虽然可能会出现不一致和冲突,但这种情况很少发生,并且可以在检测到后进行解决。然而,乐观复制只能保证较弱的一致性。
弱一致性为复制系统的其他属性带来了优势:
- 可用性 :请求不会被阻塞,每个请求都能完成。
- 降低延迟 :请求无需等待其他副本的确认即可快速返回。
- 容错性 :在多种故障场景下,系统(或其部分)仍能正常运行。
- 可扩展性 :由于副本之间所需的同步较少,可以支持更多的副本。
1.1 弱化强一致性的方式
有多种方式可以弱化强一致性的概念,这些较弱的一致性定义更容易实现,但在支持的操作、可访问的记录数量或强制的操作顺序方面提供的一致性保证较少:
- 操作方面 :对单个操作序列(操作被视为不属于更大事务的单个命令)在副本上强制一致性,比只读事务的一致性要求弱,而只读事务的一致性要求又比读写事务的一致性要求弱。
超级会员免费看
订阅专栏 解锁全文
3423

被折叠的 条评论
为什么被折叠?



