Incidentally, the excellent link you mentioned at http://en.wikipedia.org/wiki/Snapshot_isolation does illustrate the shortcomings of snapshot serialization using an example that is quite similar to the issue at hand: a /write skew/ anomaly in stock reservation could allow the real stock level to become negative when it really wasn't meant to be.
And one of the workarounds for /write skew/ mentioned in the article is Promotion, which is what SELECT FOR UPDATE really does :-)
Incidentally, the excellent link you mentioned at http:// en.wikipedia. org/wiki/ Snapshot_ isolation does illustrate the shortcomings of snapshot serialization using an example that is quite similar to the issue at hand: a /write skew/ anomaly in stock reservation could allow the real stock level to become negative when it really wasn't meant to be.
And one of the workarounds for /write skew/ mentioned in the article is Promotion, which is what SELECT FOR UPDATE really does :-)