@Override protected RegionVersionVector createCopy(InternalDistributedMember ownerId, ConcurrentHashMap<InternalDistributedMember, RegionVersionHolder<InternalDistributedMember>> vector, long version, ConcurrentHashMap<InternalDistributedMember, Long> gcVersions, long gcVersion, boolean singleMember, RegionVersionHolder<InternalDistributedMember> localExceptions) { return new VMRegionVersionVector(ownerId, vector, version, gcVersions, gcVersion, singleMember, localExceptions); }
public static RegionVersionVector<?> create(VersionSource<?> versionMember, LocalRegion owner) { if (versionMember instanceof DiskStoreID) { return new DiskRegionVersionVector((DiskStoreID) versionMember, owner); } else { return new VMRegionVersionVector((InternalDistributedMember) versionMember, owner); } }
public static RegionVersionVector<?> create(boolean persistent, DataInput in) throws IOException, ClassNotFoundException { RegionVersionVector<?> rvv; if (persistent) { rvv = new DiskRegionVersionVector(); } else { rvv = new VMRegionVersionVector(); } InternalDataSerializer.invokeFromData(rvv, in); return rvv; }
@Test public void isRvvGcDominatedByRequesterRvvReturnsTrueIfRequesterRvvForLostMemberDominates() throws Exception { InternalDistributedMember lostMember = mock(InternalDistributedMember.class); ConcurrentHashMap<InternalDistributedMember, Long> memberToGcVersion = new ConcurrentHashMap<>(); memberToGcVersion.put(lostMember, new Long(1) /* lostMemberGcVersion */); RegionVersionVector providerRvv = new VMRegionVersionVector(lostMember, null, 0, memberToGcVersion, 0, true, null); ConcurrentHashMap<InternalDistributedMember, RegionVersionHolder<InternalDistributedMember>> memberToRegionVersionHolder = new ConcurrentHashMap<>(); RegionVersionHolder regionVersionHolder = new RegionVersionHolder(lostMember); regionVersionHolder.setVersion(2); memberToRegionVersionHolder.put(lostMember, regionVersionHolder); RegionVersionVector requesterRvv = new VMRegionVersionVector(lostMember, memberToRegionVersionHolder, 0, null, 0, true, null); assertThat(providerRvv.isRVVGCDominatedBy(requesterRvv)).isTrue(); }
@Test public void isRvvGcDominatedByRequesterRvvReturnsFalseIfRequesterRvvForLostMemberDominates() throws Exception { InternalDistributedMember lostMember = mock(InternalDistributedMember.class); ConcurrentHashMap<InternalDistributedMember, Long> memberToGcVersion = new ConcurrentHashMap<>(); memberToGcVersion.put(lostMember, new Long(1) /* lostMemberGcVersion */); RegionVersionVector providerRvv = new VMRegionVersionVector(lostMember, null, 0, memberToGcVersion, 0, true, null); ConcurrentHashMap<InternalDistributedMember, RegionVersionHolder<InternalDistributedMember>> memberToRegionVersionHolder = new ConcurrentHashMap<>(); RegionVersionHolder regionVersionHolder = new RegionVersionHolder(lostMember); regionVersionHolder.setVersion(0); memberToRegionVersionHolder.put(lostMember, regionVersionHolder); RegionVersionVector requesterRvv = new VMRegionVersionVector(lostMember, memberToRegionVersionHolder, 0, null, 0, true, null); assertThat(providerRvv.isRVVGCDominatedBy(requesterRvv)).isFalse(); }
@Test public void isRvvGcDominatedByRequesterRvvReturnsTrueIfRequesterRvvDominates() throws Exception { final String local = getIPLiteral(); InternalDistributedMember provider = new InternalDistributedMember(local, 101); InternalDistributedMember requester = new InternalDistributedMember(local, 102); ConcurrentHashMap<InternalDistributedMember, Long> memberToGcVersion = new ConcurrentHashMap<>(); memberToGcVersion.put(requester, new Long(1)); RegionVersionVector providerRvv = new VMRegionVersionVector(provider, null, 1, memberToGcVersion, 1, false, null); ConcurrentHashMap<InternalDistributedMember, RegionVersionHolder<InternalDistributedMember>> memberToRegionVersionHolder = new ConcurrentHashMap<>(); RegionVersionHolder regionVersionHolder = new RegionVersionHolder(provider); regionVersionHolder.setVersion(2); memberToRegionVersionHolder.put(provider, regionVersionHolder); RegionVersionVector requesterRvv = new VMRegionVersionVector(requester, memberToRegionVersionHolder, 2, null, 0, false, regionVersionHolder); assertThat(providerRvv.isRVVGCDominatedBy(requesterRvv)).isTrue(); }
@Test public void isRvvGcDominatedByRequesterRvvReturnsTrueIfRequesterRvvDominatesWithNoGcVersion() throws Exception { final String local = getIPLiteral(); InternalDistributedMember provider = new InternalDistributedMember(local, 101); InternalDistributedMember requester = new InternalDistributedMember(local, 102); ConcurrentHashMap<InternalDistributedMember, Long> memberToGcVersion = new ConcurrentHashMap<>(); RegionVersionVector providerRvv = new VMRegionVersionVector(provider, null, 1, memberToGcVersion, 1, false, null); ConcurrentHashMap<InternalDistributedMember, RegionVersionHolder<InternalDistributedMember>> memberToRegionVersionHolder = new ConcurrentHashMap<>(); RegionVersionHolder regionVersionHolder = new RegionVersionHolder(provider); regionVersionHolder.setVersion(2); memberToRegionVersionHolder.put(provider, regionVersionHolder); RegionVersionVector requesterRvv = new VMRegionVersionVector(requester, memberToRegionVersionHolder, 0, null, 0, false, null); assertThat(providerRvv.isRVVGCDominatedBy(requesterRvv)).isTrue(); }
@Test public void isRvvGcDominatedByRequesterRvvReturnsFalseIfRequesterRvvDominatesProvider() throws Exception { final String local = getIPLiteral(); InternalDistributedMember provider = new InternalDistributedMember(local, 101); InternalDistributedMember requester = new InternalDistributedMember(local, 102); RegionVersionVector providerRvv = new VMRegionVersionVector(provider, null, 1, null, 1, false, null); ConcurrentHashMap<InternalDistributedMember, RegionVersionHolder<InternalDistributedMember>> memberToRegionVersionHolder = new ConcurrentHashMap<>(); RegionVersionHolder regionVersionHolder = new RegionVersionHolder(provider); regionVersionHolder.setVersion(0); memberToRegionVersionHolder.put(provider, regionVersionHolder); RegionVersionVector requesterRvv = new VMRegionVersionVector(requester, memberToRegionVersionHolder, 0, null, 0, false, null); assertThat(providerRvv.isRVVGCDominatedBy(requesterRvv)).isFalse(); }
@Test public void isRvvGcDominatedByRequesterRvvReturnsFalseIfProviderRvvIsNotPresent() throws Exception { final String local = getIPLiteral(); InternalDistributedMember provider = new InternalDistributedMember(local, 101); InternalDistributedMember requester = new InternalDistributedMember(local, 102); RegionVersionVector providerRvv = new VMRegionVersionVector(provider, null, 1, null, 1, false, null); ConcurrentHashMap<InternalDistributedMember, RegionVersionHolder<InternalDistributedMember>> memberToRegionVersionHolder = new ConcurrentHashMap<>(); RegionVersionHolder regionVersionHolder = new RegionVersionHolder(provider); regionVersionHolder.setVersion(0); // memberToRegionVersionHolder.put(provider, regionVersionHolder); RegionVersionVector requesterRvv = new VMRegionVersionVector(requester, memberToRegionVersionHolder, 0, null, 0, false, null); assertThat(providerRvv.isRVVGCDominatedBy(requesterRvv)).isFalse(); }
@Test public void isRvvGcDominatedByRequesterRvvReturnsFalseIfRequesterRvvDominates() throws Exception { final String local = getIPLiteral(); InternalDistributedMember provider = new InternalDistributedMember(local, 101); InternalDistributedMember requester = new InternalDistributedMember(local, 102); ConcurrentHashMap<InternalDistributedMember, Long> memberToGcVersion = new ConcurrentHashMap<>(); memberToGcVersion.put(requester, new Long(3)); RegionVersionHolder pRegionVersionHolder = new RegionVersionHolder(provider); pRegionVersionHolder.setVersion(4); RegionVersionVector providerRvv = new VMRegionVersionVector(provider, null, 1, memberToGcVersion, 1, false, pRegionVersionHolder); ConcurrentHashMap<InternalDistributedMember, RegionVersionHolder<InternalDistributedMember>> memberToRegionVersionHolder = new ConcurrentHashMap<>(); RegionVersionHolder regionVersionHolder = new RegionVersionHolder(provider); regionVersionHolder.setVersion(2); memberToRegionVersionHolder.put(provider, regionVersionHolder); RegionVersionVector requesterRvv = new VMRegionVersionVector(requester, memberToRegionVersionHolder, 2, null, 0, false, regionVersionHolder); assertThat(providerRvv.isRVVGCDominatedBy(requesterRvv)).isFalse(); }
rv1 = new VMRegionVersionVector(server1); rv1.recordVersion(server2, 1); rv1.recordVersion(server2, 5); rv1 = new VMRegionVersionVector(server1); rv1.recordVersion(server2, 1); rv1.recordVersion(server2, 5); rv1 = new VMRegionVersionVector(server1); rv1.recordVersion(server2, 1); rv1.recordVersion(server2, 4); rv1 = new VMRegionVersionVector(server1); rv1.recordVersion(server2, 1); rv1.recordVersion(server3, 1); RegionVersionVector giiReceiverRVV = new VMRegionVersionVector(server6); rv1 = new VMRegionVersionVector(server1); long bitSetRollPoint = RegionVersionHolder.BIT_SET_WIDTH + 1; long boundary = RegionVersionHolder.BIT_SET_WIDTH * 3 / 4;
InternalDistributedMember server3 = new InternalDistributedMember(local, 103); RegionVersionVector rv1 = new VMRegionVersionVector(server1); rv1.updateLocalVersion(10); rv1.recordVersion(server2, 1);