在很多高并发场景中,并发事务控制 一直是对于数据库的一个重要挑战。典型的应用,如电商中的秒杀、阿里的双十一等。
以下是一个 Oracle 数据库的Demo用例,在同一条记录的同时更新中,我们观察到了什么?
是的,没有阻塞,结果最终一致。这源自 Oracle Database 23c 的一个新特性:托管列并发控制(Escrow Column Concurrency Control)。
Escrow 的词义是托管、代管。也就是说,在这个特性下,数据的一致性由系统代管,脱离经典的并发控制原则。在以上 update 执行过程中,提交前执行查询,读一致性是不支持的:
官方的解释是:这个特性就是为了解决在电商等高并发环境下,加减库存的高频需求。
而这一场景,是最早阿里巴巴双11面临的关键挑战,如果处理不好,就可能发生阻塞、雪崩、超