Currently SegmentNodeState#getStableId() returns a string with all its associated overhead:
- high memory requirements (42 characters plus the overhead of a String instance. The raw requirements are a mere 20 bytes (long msb, long lsb, int offset). The memory overhead is problematic as the stable id is used as key in the node deduplication cache (See
- high serialisation cost. I have seen getStableId() occurring in stack traces. This is to be expected as that method is called quite often when comparing node states.
This issue is to explore options for reducing both CPU and memory overhead of stable ids.