3. 紹介する論?
? [1] K. P. Eswaran, J. N. Gray, R. A. Lorie, and I. L. Traiger. 1976. The notions of consistency
and predicate locks in a database system. Commun. ACM 19, 11 (Nov. 1976), 624–633.
? [2] J. R. Jordan, J. Banerjee, and R. B. Batman. 1981. Precision locks. SIGMOD ’81.
? [3] Manuel Reimer. 1983. Solving the Phantom Problem by Predicative Optimistic
Concurrency Control. VLDB ’83.
? [4] Thomas Neumann, Tobias Mühlbauer, and Alfons Kemper. 2015. Fast Serializable Multi-
Version Concurrency Control for Main-Memory Database Systems. SIGMOD ’15.
? [5] Jinwei Guo, Peng Cai, Jiahao Wang, Weining Qian, Aoying Zhou: Adaptive Optimistic
Concurrency Control for Heterogeneous Workloads. Proc. VLDB Endow. 12(5): 584-596
(2019)
8. [1] Notion of Phantom Anomaly
? ページの ”存在” を情報として扱うトランザクションは,ページモデル+ロックだと実装できない.
? 「存在する」ページはロックできるが,「存在しない」ページにはロックをかけられないため.
? SELECT * FROM Users WHERE …, といった?般的な Predicate を持つクエリ全てにこの問題は
存在する.
? 今はまだ
?
に存在しないが,クエリの対象となっているページを phantoms と呼ぶ.
D
> A still more elementary example is the test for the existence of a tuple in a relation. If the
tuple exists, it is to be locked to insure that no other transaction will delete it before the
fi
rst
transaction terminates. If the tuple does not exist, "it" should be locked to insure that no
other transaction will create such a tuple before the
fi
rst transaction terminates. In this case
the "nonexistence" of the tuple is being locked. Such nonexistent tuples are called
phantoms.
16. Phantom Anomaly on Graph
Other Anomalies Phantom Anomaly
t1
?
r1(x) r1(y) w2(x) w2(y)
t2
r-w (anti dependency)
t1
SELECT * FROM User WHERE
Age < 20
t2
r-w (anti dependency)
t1 =
INSERT INTO User (Age=15)
t2 =