Abstract
Optimistic concurrency control means end-of-transaction validation of read- and write-sets or of timestamps attached to database items. Optimistic concurrency control suffers from multiple problems the present chapter attempts to remedy. First, concurrent validation of multiple transactions requires communication among them in order to detect conflicting database accesses. Second, two-phase commit requires that all local participants prepare themselves to abide by the global coordinator’s commit decisions, which means that other transactions must not read or write database items in conflict with a local participant of a committing distributed transaction. Third, the danger of premature publication of updates committed but not yet durable requires that the atomic phase at the end of each optimistic transaction must include not only validation and propagation of updates from the transaction-private update buffer to the shared buffer pool but also forcing the transaction’s commit log record to stable storage.
The remedies proposed for the problems above are perhaps radical but definitely simple. They employ locks and a lock manager for commit processing in optimistic concurrency control. The remedy for the last problem relies on controlled lock violation, which prior research has introduced and considered only for pessimistic concurrency control.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
DeWitt, D. J., Katz, R. H., Olken, F., Shapiro, L. D., Stonebraker, M., and Wood, D. A. (1984). Implementation techniques for main memory database systems. ACM SIGMOD, pages 1-8. 10.1145/602260.602261. 282, 294
Diaconu, C., Freedman, C., Ismert, E., Larson, P., Mittal, P., Stonecipher, R., Verma, N., and Zwilling, M. (2013). Hekaton: SQL Server’s memory-optimized OLTP engine. ACM SIGMOD, pages 1243-1254. 10.1145/2463676.2463710. 287
Graefe, G. (2007). Hierarchical locking in B-tree indexes. BTW Conference, pages 18-42 (Chapter 1). 282
Graefe, G. (2019a). Deferred lock enforcement (Chapter 11). 282, 290, 299
Graefe, G. (2019b). Avoiding index-navigation deadlocks (Chapter 9). 282
Graefe, G. (2019c). A problem in two-phase commit (Chapter 10). 284
Graefe, G., Lillibridge, M., Kuno, H. A., Tucek, J., and Veitch, A. C. (2013). Controlled lock violation. ACM SIGMOD, pages 85-96 (Chapter 4). 10.1145/2463676.2465325. 282, 285, 293, 294, 297
Graefe, G., Volos, H., Kimura, H., Kuno, H. A., Tucek, J., Lillibridge, M., and Veitch, A. C. (2014). In-memory performance for big data. PVLDB, 8(1), pages 37-48. 10.14778/2735461.2735465. 289
Gray, J., Lorie, R. A., Putzolu, G. R., and Traiger, I. L. (1976). Granularity of locks and degrees of consistency in a shared data base. IFIP Working Conference on Modelling in Data Base Management Systems, pages 365-394. 282
Härder, T. (1984). Observations on optimistic concurrency control schemes. Information Systems, 9(2), pages 111-120. 10.1016/0306-4379(84)90020-6. 279, 282
Jung, H., Han, H., Fekete, A. D., Heiser, G., and Yeom, H. Y. (2014). A scalable lock manager for multicores. ACM TODS, pages 29:1-29:29. 10.1145/2691190.2691192. 283
Korth, H. F. (1983). Locking primitives in a database system. Journal of the ACM, 30(1), pages 55-79. 10.1145/322358.322363. 282
Kung, H. T. and Robinson, J. T. (1981). On optimistic methods for concurrencycontrol. ACM TODS, 6(2), pages 221-226. 10.1145/319566.319567. 279, 280, 281, 288
Lomet, D. B. (1993). Key range locking strategies for improved concurrency. VLDB, pages 655-664. 282
Mohan, C., Lindsay, B. G., and Obermarck, R. (1986). Transaction management in the R* distributed database management system. ACM TODS, 11(4), pages 378-396. 10.1145/7239.7266. 284, 293
Skeen, D. (1981). Nonblocking commit protocols. ACM SIGMOD, pages 133-142. 10.1145/582338.582339. 284
SQLite. (2004). File locking and concurrency in SQLite version 3. http://sqlite.org/lockingv3.html 282
Thomasian, A. (1998). Performance analysis of locking methods with limited wait depth. Performance Evaluation, 34(2), pages 69-89. 10.1016/s0166-5316(98)00025-x. 284
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this chapter
Cite this chapter
Graefe, G. (2019). Repairing Optimistic Concurrency Control. In: On Transactional Concurrency Control. Synthesis Lectures on Data Management. Springer, Cham. https://doi.org/10.1007/978-3-031-01873-2_9
Download citation
DOI: https://doi.org/10.1007/978-3-031-01873-2_9
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-00745-3
Online ISBN: 978-3-031-01873-2
eBook Packages: Synthesis Collection of Technology (R0)eBColl Synthesis Collection 9