[CONTROLLER-2011] Do not use RangeSet in serialization Created: 06/Nov/21  Updated: 11/Nov/21  Resolved: 06/Nov/21

Status: Resolved
Project: controller
Component/s: clustering
Affects Version/s: None
Fix Version/s: 3.0.13, 4.0.6, 2.0.10

Type: Improvement Priority: Medium
Reporter: Robert Varga Assignee: Robert Varga
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Relates
relates to CONTROLLER-1720 Improve RangeSet tracking performance Resolved

 Description   

We have switched to using UnsignedLongSet to track identifiers, which improves our memory footprint and performance in CONTROLLER-1720.

Our in-memory metadata formats are still using ImmutableRangeSets, which require additional indirection and conversion. They are also prone to allocating large arrays when they become large, which does not play nice with G1GC.

Split out UnsignedLongSet to a Mutable and Immutable implementation, where the Immutable version can be serialized/deserialized using the same serialization format as we use for RangeSets.


Generated at Wed Feb 07 19:56:59 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.