database locking mechanisms