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)