Concurrency control algorithms for database systems exploiting the semantics of read-only transactions