经典的事务处理策略主要有三种。
乐观并发控制策略(Optimistic Concurrency Control,OCC)
从事务开始,每一项操作都允许进行,但在事务提交的时刻,需要进行隔离性和完整性约束检查,如果有违反相关约束的行为则终止事务。单机事务处理模型很少使用乐观并发控制策略。
使用这种策略的分布式数据库有Percolator、CockroachDB等。
悲观并发控制策略(Pessimistic Concurrency Control,PCC)
从事务开始就检查每一项操作是否会违反隔离性和完整性约束,如果可能违反,则阻塞这样的操作,预防其他并发事务发生。通常采用封锁并发控制机制实现并发事务的互斥,直到事务完成后才能解除互斥(释放锁)。
单机数据库大多采用这种策略,如Oracle、MySQL、Informix、DB2等,后面逐步还融合了MVCC技术。
使用这种策略的分布式数据库有OceanBase、Spanner等。
混合策略
混合策略通常以乐观并发控制策略为框架,并内嵌悲观并发控制策略,从而实现并发访问控制。
使用这种策略的分布式数据库有TDSQL、QianBase等。