@Test public void shouldCompactCollection() { final int totalItems = 50; for (int i = 0; i < totalItems; i++) { intToObjectMap.put(i, Integer.toString(i)); } for (int i = 0, limit = totalItems - 4; i < limit; i++) { intToObjectMap.remove(i); } final int capacityBeforeCompaction = intToObjectMap.capacity(); intToObjectMap.compact(); assertThat(intToObjectMap.capacity(), lessThan(capacityBeforeCompaction)); }
private void handleMemberRemovals(final long commitPosition) { ClusterMember[] newClusterMembers = clusterMembers; for (final ClusterMember member : clusterMembers) { if (member.hasRequestedRemove() && member.removalPosition() <= commitPosition) { if (member == thisMember) { expectedAckPosition = commitPosition; state(ConsensusModule.State.LEAVING); } newClusterMembers = ClusterMember.removeMember(newClusterMembers, member.id()); clusterMemberByIdMap.remove(member.id()); clusterMemberByIdMap.compact(); CloseHelper.close(member.publication()); member.publication(null); logPublisher.removePassiveFollower(member.logEndpoint()); pendingMemberRemovals--; } } clusterMembers = newClusterMembers; rankedPositions = new long[clusterMembers.length]; }
clusterMemberByIdMap.compact();
clusterMemberByIdMap.compact(); ClusterMember.addClusterMemberIds(newMembers, clusterMemberByIdMap); thisMember = ClusterMember.findMember(this.clusterMembers, memberId);
private void handleMemberRemovals(final long commitPosition) { ClusterMember[] newClusterMembers = clusterMembers; for (final ClusterMember member : clusterMembers) { if (member.hasRequestedRemove() && member.removalPosition() <= commitPosition) { if (member == thisMember) { expectedAckPosition = commitPosition; state(ConsensusModule.State.LEAVING); } newClusterMembers = ClusterMember.removeMember(newClusterMembers, member.id()); clusterMemberByIdMap.remove(member.id()); clusterMemberByIdMap.compact(); CloseHelper.close(member.publication()); member.publication(null); logPublisher.removePassiveFollower(member.logEndpoint()); pendingMemberRemovals--; } } clusterMembers = newClusterMembers; rankedPositions = new long[clusterMembers.length]; }
clusterMemberByIdMap.compact();
clusterMemberByIdMap.compact(); ClusterMember.addClusterMemberIds(newMembers, clusterMemberByIdMap); thisMember = ClusterMember.findMember(this.clusterMembers, memberId);