Concurrency Control: Lock vs Timestamp Protocols