<Tr> <Th> read - lock </Th> <Td> </Td> <Td> X </Td> </Tr> <Tr> <Th> write - lock </Th> <Td> X </Td> <Td> X </Td> </Tr> <Dl> <Dd> X indicates incompatibility, i.e, a case when a lock of the first type (in left column) on an object blocks a lock of the second type (in top row) from being acquired on the same object (by another transaction). An object typically has a queue of waiting requested (by transactions) operations with respective locks . The first blocked lock for operation in the queue is acquired as soon as the existing blocking lock is removed from the object, and then its respective operation is executed . If a lock for operation in the queue is not blocked by any existing lock (existence of multiple compatible locks on a same object is possible concurrently), it is acquired immediately . </Dd> <Dd> Comment: In some publications, the table entries are simply marked "compatible" or "incompatible", or respectively "yes" or "no". </Dd> </Dl> <Dd> X indicates incompatibility, i.e, a case when a lock of the first type (in left column) on an object blocks a lock of the second type (in top row) from being acquired on the same object (by another transaction). An object typically has a queue of waiting requested (by transactions) operations with respective locks . The first blocked lock for operation in the queue is acquired as soon as the existing blocking lock is removed from the object, and then its respective operation is executed . If a lock for operation in the queue is not blocked by any existing lock (existence of multiple compatible locks on a same object is possible concurrently), it is acquired immediately . </Dd>

Advantages and disadvantages of strict two phase locking protocol