Decrease memory usage of the CMR by removing ConcurrentHashMaps in indexing

Description

Migrated from NovaTec Jira. Original ticket: INSPECTIT-545

As a part of INSPECTIT-428, a custom leafs for the indexing of storage tree have been made. These leafs do not use concurrent map to hold the references to objects, but some kind of custom Hashtable, where key is primitive value.

This way we gain much less memory consumption, because the size of the tree by my calculations should be 50% less, and that's a lot. On the other hand, we will lose some querying speed because of the synchronization. Concurrent map divided the elements in segments, thus, at the same time write to two different segments was possible for example.

When I say custom Hashtable, i mean that we either need to create our own implementations, or use the primitive collection libraries that are available like Colt (http://acs.lbl.gov/software/colt/), Trove (http://trove4j.sourceforge.net/), FastUtil (http://fastutil.dsi.unimi.it/) or Cliff Click's Highly Scalable Libraries (http://sourceforge.net/projects/high-scale-lib/).

Environment

None

Assignee

Ivan Senic

Reporter

Stefan Siegl

Labels

None

Integrator

Patrice Bouillet

Components

Sprint

None

Fix versions

Priority

High
Configure