|
|
|
|
|
by abadid
2610 days ago
|
|
As mentioned in the post: "There are several ways to achieve [serializability] — such as via locking, validation, or multi-versioning." Deadlock happens under some, but not all implementations of serializability via locking. There have been several database systems developed in my lab that use locking to achieve serializability, but yet never deadlock. Examples include: (1) Calvin: http://www.cs.umd.edu/~abadi/papers/calvin-sigmod12.pdf
(2) Orthrus: http://www.cs.umd.edu/~abadi/papers/orthrus-sigmod16.pdf
(3) PWV: http://www.cs.umd.edu/~abadi/papers/early-write-visibility.p... Bottom line: serializability does not necessarily mean deadlock. Deadlock can be avoided via non-locking implementations, or even in well-designed locking implementations. One of the points in the conclusion of the post warrants being reiterated at this point: "If you find that the cost of serializable isolation in your system is prohibitive, you should probably consider using a different database system earlier than you consider settling for a reduced isolation level." |
|