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

Jean-Noel Rouvignac
03.26.2015 a7e1ceff87ef37c3a7218e91090650665913252d
refs
author Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Wednesday, June 3, 2015 14:26 +0200
committer Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Wednesday, June 3, 2015 14:26 +0200
commita7e1ceff87ef37c3a7218e91090650665913252d
tree 48693a79ed686e338336650449a995075447da74 tree | zip | gz
parent 922a2823cb88760f85cc77f053bad49561682583 view | diff
OPENDJ-2016 Implement new on disk merge import strategy based on storage engine


Trying to use concurrent data structures for the Buffer class has not given performance improvements.
I think this was due to the overhead of these concurrent data structures and locking / unlocking.
Consequently, I removed all uses of concurrent data structures.

Implemented SecondPhaseProgressTask to display progress for the second phase of import.

Also fixed a bug in ImportIDSetsMerger.buildEntryIDSet().



OnDiskMergeStorageImporter.java:
Removed all concurrent related code, including ConcurrentHashSet, replaced with single threaded data structures.
In Buffer:
- added treeName, and indexFile fields + renamed file field to indexFile
- added MapMode as a parameter of the constructor + getMode()
- moved readBufferPositions() and getCursors() (renamed to openCursor()) to this class

Implemented SecondPhaseProgressTask to display progress for the second phase.
Added ProgressCursor inner class.
In CompositeCursor constructor, Iterator now operates on a copy of the provided cursors.
Added ByteBufferCusor.getBytesRead().
In importPhaseOne() and importPhaseTwo(), added a final run of the progress task to display the end state.
In copyTo(), added a SecondPhaseProgressTask parameter.

In ImportIDSetsMerger.buildEntryIDSet(), fixed a bug.
1 files modified
457 ■■■■ changed files
opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/OnDiskMergeStorageImporter.java 457 ●●●● diff | view | raw | blame | history