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/).