Question on Database Systems-Concurrency Control
A popular update operation is increment/decrement the numeric value of data object by 1. Suppose we are now to create a lock mode I, along with usual shared and exclusive lock modes. Consider a locking protocol that will require a request for a lock with mode I on a data object Q (with numeric value) before proceeding with the increment/decrement operation on Q.
(i) Provide a lock compatibility matrix with these three modes.
(ii) Will this protocol provide more concurrency (data sharing) than the one with only shared and exclusive lock modes?
(iii) Suppose the increment/decrement operation is modified such that the operation will fail if the value of data object will become negative after the operation. Are your answers to (i) and (ii) still valid? Explain your answer.