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

Jean-Noel Rouvignac
28.50.2015 6145a17c281d881e8976e486c0d6b6a203dffd48
refs
author Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Thursday, May 28, 2015 12:50 +0200
committer Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Thursday, May 28, 2015 12:50 +0200
commit6145a17c281d881e8976e486c0d6b6a203dffd48
tree 372949e65884af3b769a8e3f9fbb3ca8213e4af7 tree | zip | gz
parent f8609be49ad5c3171e2bf0102d6bf10ff163b2e8 view | diff
OPENDJ-2016 Implement new on disk merge import strategy based on storage engine

Various little performance improvements.
ID2ChildrenCount remain to be computed.


OnDiskMergeStorageImporter.java:
In Buffer:
- increased the size of memory mapped buffers from 1024 to 10 MiB.
- used ConcurrentHashMaps instead of ConcurrentSkipListMaps because during performance testing it was found this code spent a lot of time in ByteString.compareTo() when putting entries to the map. However, at this point, we only need to put() very quickly data in the map, we do not need keys to be sorted.
- added ConcurrentHashSet, Set implementation backed by a ConcurrentHashMap, to avoid the use of ConcurrentSkipListSet backed by ConcurrentSkipListMap
- renamed copyToDisk() to flushToMappedByteBuffer()
In ImportIDSetsMerger():
- in merge(), extracted and rewrote buildEntryIDSet(Set<ByteString> values)
1 files modified
213 ■■■■ changed files
opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/OnDiskMergeStorageImporter.java 213 ●●●● diff | view | raw | blame | history