Latest AirConcurrentMap Iterator Speedup
My Java Map implementation called AirConcurrentMap continues to speed up - now 50% more for Iterators. (A Map is a common standard key/value in-memory Object collection). The AirConcurrentMap keyset Iterators are red, and the standard Java ConcurrentSkipListMap in blue and ConcurrentHashMap in green. Now AirConcurrentMap is almost nowhere lower, and even better over to the right in the 'big data in-memory' zone. To keep it apples-to-apples I'm not showing the AirConcurrentMap visitor extension I showed last time, which has improved even more.
These speeds really matter for large maps, because it can take seconds to do a complete scan even for only a 2GB Java process. That puts a limit, for example, on whether iterators can be used to access Map key/value data on a web server, since the page hit latency cannot be allowed to go above a second or so. Even for small maps, overall active server efficiency must stay high. Iterators are necessary whenever the key or a nearby key is not already known, such as for statistics or filtering. The AirConcurrentMap scans are typically sub-second (at 2GB for counting).
Contact me about product evaluation and other opportunities here on linked in or via my email displayed on my site boilerbay.com. Feedback and likes are very welcome.
AirConcurrentMap is designed for a medium to large number of key/value entry pairs, with superior performance in capacity, the direct get/put/remove operations, the ordering operators higher/lower/ceiling/floor, iterators, and other operations. See docs at boilerbay.com. It is a drop-in replacement for any existing Java Map because it is a ConcurrentNavigableMap, and has a 'visitor' extension for faster scanning.
This test uses Java 1.8, simply counting the keys in the keySet(). The advantage is lower for more complex operations, which I'll show later. Keys and values are Longs. Note that the x axis is logarithmic, and goes from 1 to 16M entries, which provides a JVM footprint of about 2GB.