EagleBear2002 的博客

这里必须根绝一切犹豫,这里任何怯懦都无济于事

混合隔离级别综述

$$ \newcommand{\rel}[1]{\xrightarrow{#1}} \newcommand{\WR}{\textsf{WR}} \newcommand{\WW}{\textsf{WW}} \newcommand{\RW}{\textsf{RW}} $$

摘要

[Fekete PODS'05]

  • DB2,SQL Server 和 ASE 使用了 S2PL 算法
  • Oracle 和 PostgreSQL 使用了 SI 算法
  • Oracle 使用 SI 算法来实现 SERIALIZABLE,但允许显式使用锁
  • 预告 Yukon release of SQL Server 支持 S2PL+SI 算法
  • S2PL+SI 下的静态鲁棒性充分条件:如果所有的 pivot 事务都使用了 S2PL,则整个程序鲁棒;
  • 我们对 SI-SER 的定义与 Fekete 相同,但我们给出的充分条件比 Fekete 更精确。

[Fekete DASFAA'08]

  • 明确指出 SQL Server 2005 支持 S2PL+SI
  • 实验:SI、S2PL、pivot-S2PL 下的 throughput 对比

[Gotsman CONCUR'16]

  • 提出了弱隔离级别和 SER 混合的语义;
  • 给出该混合隔离级别下的静态鲁棒性。

[Enea CAV'25]

  • 给出了混合隔离级别(RC、RA、PC、SI、SER)的形式语义规约,在 SI-SER 上保持了与 Fekete 一致,该形式语义与我们的贡献几乎相同;
  • 使用 PostgreSQL 在 RC-SI-SER 下产生的历史完成实验

[Vandervoort VLDB'25]

  • 基于调度定义了 RC-SI-SSI 混合;
  • 使用读提升(Read Promotion)实现鲁棒;
  • 不适用于分布式系统。

Mixing Isolation Levels

至少有三个。

理论章节不要限制具体的隔离级别,要 gerneral

找到 Fekete'05 的对应系统:HyperSQL

检查 PGSQL 的语义实现。

向 PGSQL 的 community 进行提问,找到其他可以背书的内容

关于 PG 的实验文章看一看