mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

Matthew Swift
26.22.2015 f09c069e92d051036af2a969fe5289cb7c4826ba
refs
author Matthew Swift <matthew.swift@forgerock.com>
Monday, October 26, 2015 09:22 +0100
committer Matthew Swift <matthew.swift@forgerock.com>
Monday, October 26, 2015 09:22 +0100
commitf09c069e92d051036af2a969fe5289cb7c4826ba
tree fce1904c017033938bc5fec517ce93ef8eb8bf5e tree | zip | gz
parent 5c61300f62603c047f5c7dee132feb051baa35ee view | diff
OPENDJ-2349: fix deadlocks during subtree deletes and moddn

The following changes were made:

* ensure that cursors in JE use read committed isolation, not the
default which is repeatable read
* ensure that records are locked in a consistent order during update
operations: dn2id, dn2uri, id2entry, id2childrenCount, and finally the
attribute indexes
* added support for deleting records directly from cursors
* DN2ID: added renameSubtree() method in order to avoid breaking
encapsulation when renaming DN keys during moddn operations
* ID2Count: split apart updates to parent counts and total counts so
that records can be updated in a well defined order. A consequence of
this change is that the total count includes base entries
* ID2Entry: added openCursor() method to facilitate implementation of
subtree deletes and moddn operations.
14 files modified
1117 ■■■■ changed files
opendj-server-legacy/src/main/java/org/opends/server/backends/jeb/JEStorage.java 23 ●●●●● diff | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/backends/pdb/PDBStorage.java 14 ●●●●● diff | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/CursorTransformer.java 13 ●●●●● diff | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/DN2ID.java 49 ●●●●● diff | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/EntryContainer.java 834 ●●●●● diff | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/ID2Count.java 45 ●●●●● diff | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/ID2Entry.java 24 ●●●●● diff | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/OnDiskMergeImporter.java 45 ●●●●● diff | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/TracedStorage.java 8 ●●●●● diff | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/spi/SequentialCursor.java 12 ●●●●● diff | view | raw | blame | history
opendj-server-legacy/src/test/java/org/opends/server/backends/pluggable/DefaultIndexTest.java 6 ●●●●● diff | view | raw | blame | history
opendj-server-legacy/src/test/java/org/opends/server/backends/pluggable/ID2CountTest.java 29 ●●●●● diff | view | raw | blame | history
opendj-server-legacy/src/test/java/org/opends/server/backends/pluggable/OnDiskMergeImporterTest.java 6 ●●●●● diff | view | raw | blame | history
opendj-server-legacy/src/test/java/org/opends/server/backends/pluggable/PluggableBackendImplTestCase.java 9 ●●●●● diff | view | raw | blame | history