Serial Equivalence


We say that an interleaving of two blocks is serially equivalent, if the result is equivalent to an execution in which one block was executed entirely before the other.

Consider the interleaving again:
Editor 1: Editor 2:
SELECT body FROM news WHERE id='7'  
edit the body (e.g. in a form) SELECT body FROM news WHERE id='7'
  edit the body (e.g. in a form)
   UPDATE news SET body = newbody WHERE id = '7'
UPDATE news SET body = newbody WHERE id = '7'   
As already remarked, this interleaving of the two blocks is not serially equivalent. How many serially equivalent interleavings exist for these two blocks?

Why don't we just require all blocks to be executed one after the other?

The goal of a Concurrency Control Protocol is to