Transactions and Concurrency Control Patterns
Get the most out of your data access layer
Hibernate is the most popular JPA provider, and knowing its inner-workings can make the difference between a high-performance enterprise application and one that barely crawls.
Based on my book, High-Performance Java Persistence, this online workshop is meant to mind the gap between Java developers and database programming.
Agenda
In this workshop, we're going to talk about Transactions and Concurrency Control Patterns.
Therefore, we are going to cover the following topics:
- ACID
- Phenomena
- Dirty Write,
- Dirty Read,
- Non-Repeatable Read,
- Phantom Read,
- Read Skew,
- Write Skew,
- Lost Update
- 2PL (Two-Phase Locking)
- MVCC (Multi-Version Concurrency Control)
- Isolation levels and database concurrency control
- Logical vs. physical clock optimistic locking
- JPA physical and optimistic lock types
- OPTIMISTIC
- OPTIMISTIC FORCE INCREMENT,
- PESSIMISTIC FORCE INCREMENT,
- PESSIMISTIC READ,
- PESSIMISTIC WRITE
- Versionless optimistic locking
- SKIP_LOCKED and queuing access
- Preventing lost updates in long conversations
- PostgreSQL advisory locks
Target audience
This online workshop is for any Java developer that happens to develop software that interacts with a relational database system.
After attending this workshop, you'll know all sorts of tips that you can readily apply to your current enterprise project.
Created By
Vlad Mihalcea is a Java Champion and one of the top Hibernate ORM project committers. He created the Hypersistence Optimizer tool which scans your application configuration and mappings and tells you what changes you need to do to speed up your data access layer.
He's been answering thousands of questions about Hibernate and JPA on StackOverflow for which he's got gold badges for Hibernate, Java, and JPA tags.
Whenever he finds something interesting, he likes to share it on his personal blog. He believes in Open Source Software, and he thinks every developer should get involved, one way or the other.
If he doesn’t find a suitable tool for a job, he takes initiative and starts a new open source project, like Hibernate Types or FlexyPool.