Affects Version/s: None
Fix Version/s: 1.9.0
System iterators are at the core of the tightest loops in Accumulo, handling every key/value pair that traverses through a scan or a compaction. In many cases, iterators are the current performance bottleneck for Accumulo. Every bit that we can improve performance in the iterators translates into better performance for Accumulo.
There are several strategies that can be applied to the current code base to improve performance, including:
- Inlining calls that are hard for the JVM to inline at runtime
- Moving checks for null outside of tight loops when they are invariants within the loop
- Eliminating "no-op" iterators at iterator tree construction time
- Making frequently used and assigned-once objects final (like iterator sources)