悲观并发控制的历史时间线
(AI时间线生成)
悲观并发控制是一种数据库并发控制机制,假设事务之间会发生冲突,因此在操作数据前会先锁定数据,防止其他事务修改,直到事务完成。
1970年代
关系数据库兴起,并发控制需求出现。IBM的System R项目研发了基于锁的并发控制,包括共享锁和排他锁,成为悲观并发控制的早期实现。
1976年
Jim Gray提出“两阶段锁协议”(2PL),确保事务的可串行化。该协议将锁的获取和释放分为扩展阶段和收缩阶段,成为悲观并发控制的核心原则。
1981年
ANSI/ISO SQL标准发布,定义了事务隔离级别(读未提交、读已提交、可重复读、可串行化),其中可串行化通常依赖悲观并发控制实现。
1980年代
商用数据库如Oracle、DB2、SQL Server等广泛采用悲观并发控制,提供行级锁、表级锁等机制,并实现死锁检测和超时处理。
1990年代
随着Web应用兴起,高并发场景增多,悲观锁性能瓶颈显现,促使考虑替代方案。但银行、金融等强一致性要求系统仍沿用悲观锁。
2000年代初期
分布式数据库和NoSQL运动开始,强调最终一致性,乐观并发控制(如MVCC)在PostgreSQL、MySQL InnoDB中流行,但悲观锁仍用于需要严格隔离的场景。
2010年代
NewSQL系统(如Google Spanner、CockroachDB)融合悲观和乐观锁,使用两阶段提交和全局时钟实现分布式一致性。悲观并发控制仍用于需要强一致性的分布式事务。
2020年代
云原生数据库(如Amazon Aurora、Google Cloud Spanner)自动处理锁机制,提供可序列化隔离级别。同时,悲观并发控制在高冲突工作负载(如金融交易、库存管理)中继续优化,例如锁超时自适应调整。
更多历史时间线
AI时间线