3 ms·
Not in the common case, but it is necessary in the general case. One of the main motivations I have heard from the few people actually using serializable in the
by jeltz 10y ago
Not in the common case, but it is necessary in the general case. One of the main motivations I have heard from the few people actually using serializable in their systems is the ability to enforce arbitrary constraints under parallelism.
And, yes, performance should in general still be good, but there is less knowledge out there about how to solve the performance issues specific to serializable since there are few people who use it (at least in the PostgreSQL world).
- snaky 10y agoWell, not so many people use serializable in their systems (in the whole system, for every transaction) and that is common and reasonable approach. They use the minimal isolation level for particular transaction that keeps their data consistent. Most widely used safe default is repeatable read, in PostgreSQL terms. Broadly speaking, of course there are some quirks in the field, let's start from "A critique of ANSI SQL isolation levels"[1] by Jim Gray et al., an author of highly respected fundamental book about transactions [2]. But the very kind of problems discussed in RDBMS world, is a rather contrasting with an "ACID? why do we need it?" attitude that is so often in the world of "web scale NoSQL". [1] http://dl.acm.org/citation.cfm?id=223785 http://dl.acm.org/citation.cfm?id=223785 [2] https://www.amazon.com/Transaction-Processing-Concepts-Techniques-Management/dp/1558601902 https://www.amazon.com/Transaction-Processing-Concepts-Techn...?
- im_down_w_otp 10y ago> "using serializable in their systems is the ability to enforce arbitrary constraints under parallelism" That's a funny way to say that. :-) Because what it really means is, "wanting to enforce a total lack of parallelism when under parallelism." I mean I get what you're saying, it was just funny to read.