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

Jean-Noel Rouvignac
28.50.2015 5a06735032d3c0155548b77c9e627674c400b4ec
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
commit5a06735032d3c0155548b77c9e627674c400b4ec
tree 3c0184f0c211714f39f0ef10c826897fe246df8a tree | zip | gz
parent e4105ef195743fa799bbc4e94cd817b5fbbd5b6e 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-server-legacy/src/main/java/org/opends/server/backends/pluggable/OnDiskMergeStorageImporter.java 213 ●●●● diff | view | raw | blame | history