Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Acquiring locks are deferred to commit time
This is a reimplementation of PR #7545 for 3.0 branch. Deferred locks is a kernel extension and jar is not part of the distribution but is published to maven. It is also guarded by `unsupported.dbms.deferred_locks.enabled` setting which is off by default. We separate between optimistic and pessimistic locking: **Optimistic locking** Acquire locks triggered by some write or read event through the `Statement` cake. Instead of grabbing those locks we only remind what resources we want to lock and then acquire the them right before commit. **Pessimistic locking** Locks grabbed explicitly by the user or grabbed on master by a slave. Those locks are taken immediately. **Note** Grabbing locks just before commit guards for store inconsistencies but not logical inconsistencies. **Warning** This feature should not be used. Most of all code in Neo4j is assumed to be executed under some sort of lock, exclusive or shared. This commit makes that assumption false and there has not been enough investigation to foresee what consequences that will have for transaction execution. These problems are still in the unknown but there are also known, purposely undocumented, problems.
- Loading branch information
Showing
51 changed files
with
3,850 additions
and
395 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.