I am confused about the definition of a strict transaction. What is the difference between a transaction that is strict and a transaction that is both strict and 2 phase?


Strictness Strictness ($\textsf{ST}$) is related to recoverability. Serializability ($\textsf{SR}$) is one of many consistency conditions of transactions, which is somewhat orthogonal to recoverability. 2PL is a protocol usually used to ensure serializability.

First, I don't think the term "strict transaction" is proper. Strictness, just like serializability, is defined over executions (also called histories or schedules) of transactions.

Secondly, strictness is incomparable to serializability (there are various versions of serializability. I suppose you are referring to CSR --- conflict serializability).

Finally, your question "Can there be a strict transaction that is not 2Phase?" should be

"Is there any execution which is strict but not serializable?"

The answer is "Yes". For example, $e = r_1(x) \; w_2(x) \; w_2(y) \; c_2 \; r_1(y) \; c_1$. You can check that $e \in \textsf{ST} \land e \notin \textsf{SR}$.

| cite | improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.