The
only approach that is
consistent with high concurrency and high
scalability is optimistic concurrency control with
versioning. Version checking uses version numbers, or
timestamps, to detect conflicting updates (and to prevent lost updates). Hibernate provides for three possible approaches to writing application code that uses optimistic
concurrency. The use cases we show are in the context of long application
transactions but version checking also has the
benefit of preventing lost updates in single database transactions.