Reimplement UnsignedLongRangeSet 08/98308/1
authorRobert Varga <robert.varga@pantheon.tech>
Sat, 6 Nov 2021 01:15:46 +0000 (02:15 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Sat, 6 Nov 2021 13:38:27 +0000 (14:38 +0100)
commit9468993ee0c3941c19f838586773537968921d63
treefe12ae6aa1c3b05e4f1c20acc11e40ba44f8c8c4
parentc3bbe471b3743b5145c67325839b0c2a36bc5275
Reimplement UnsignedLongRangeSet

We are tracking simple discrete values, for which a RangeSet is an
overkill due to it being generalized utility working with all possible
ranges.

Reimplement UnsignedLongRangeSet as UnsignedLongSet, tracking discrete
closed ranges of longs, which improves both memory footprint and speed
of contains()/add() operations.

This also spots a failure to disconnect purged histories during
FrontendHistoryMetadataBuilder.toLeaderState().

JIRA: CONTROLLER-1720
Change-Id: I24fae4174201fd133a282f27589d6c274c06c8dc
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 19a6bcd20358c883478ee3b82e67cb147113f1c0)
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/AbstractFrontendHistory.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/FrontendClientMetadataBuilder.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/FrontendHistoryMetadataBuilder.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/LeaderFrontendState.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/LocalFrontendHistory.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/StandaloneFrontendHistory.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/UnsignedLongRangeSet.java [deleted file]
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/UnsignedLongSet.java [new file with mode: 0644]
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/utils/UnsignedLongSetTest.java [new file with mode: 0644]