Implementing Optimistic Concurrency Control for Persistence Middleware Using Row Version Verification

Martti Laiho, Fritz L. Laux · 2010

Modern web-based applications are often built as multi-tier architecture using persistence middleware. Middleware technology providers recommend the use of Optimistic Concurrency Control (OCC) mechanism to avoid the risk of blocked resources. However, most vendors of relational database management systems implement only locking schemes for concurrency control. As consequence a kind of OCC has to be implemented at client or middleware side. A simple Row Version Verification (RVV) mechanism has been proposed to implement an OCC at client side. The implementation of RVV depends on the underlying database management system and the specifics of the middleware. For performance reasons the middleware uses buffers (cache) of its own to avoid network traffic and possible disk I/O. This caching however complicates the use of RVV because the data in the middleware cache may be stale (outdated). We investigate various data access technologies, including the new Java Persistence API (JPA) and Microsoft's LINQ technologies for their ability to use the RVV programming discipline. The use of persistence middleware that tries to relieve the programmer from the low level transaction programming turns out to even complicate the situation in some cases. Programmed examples show how to use SQL data access patterns to solve the problem.

Read the paper · More papers on PaperTik