【发布时间】:2018-12-17 02:32:39
【问题描述】:
VoltDB 像 Oracle、PostgreSQL 和 MySQL 一样支持 SELECT FOR UPDATE,还是有不同的机制来阻止记录更新?
【问题讨论】:
VoltDB 像 Oracle、PostgreSQL 和 MySQL 一样支持 SELECT FOR UPDATE,还是有不同的机制来阻止记录更新?
【问题讨论】:
在 VoltDB 中,多 SQL 语句事务作为 java 存储过程运行。在该过程中,您可以独占访问所有可用记录,因此无需使用 SELECT FOR UPDATE 之类的东西来锁定它们。您可以在过程中简单地选择然后更新。可以对 VoltDB 进行许多类似的过程调用,这会将它们排队到相关记录所在的分区,然后以可序列化的序列尽可能快地执行它们,通常在几毫秒内,因为所有数据都是存储在主存储器中。这允许这种类型的事务以极高的吞吐率执行。
VoltDB 的架构与 Oracle、PostgreSQL 和 MySQL 不同,专注于高性能 OLTP 和类似的 ACID 事务。从设计上讲,它不支持在多个请求期间专门为一个客户端阻塞记录的任何机制,或者允许客户端在事务提交或回滚时进行外部控制,因为这可能会消除架构的优势,并且已经有很多通用的- 市场上可以做到这一点的专用数据库。
披露:我在 VoltDB 工作
【讨论】: