private boolean verifyExceptionList(final DiskStoreID member, final long regionversion, final RegionVersionVector rvv, final long[] exceptionList) { boolean exceptionListVerified = true; if (exceptionList != null) { for (long i:exceptionList) { exceptionListVerified = !rvv.contains(member, i); if (!exceptionListVerified) { getLogWriter().finer("DeltaGII:missing exception "+i+":"+rvv); break; } } } else { // expect no exceptionlist for (long i = 1; i<=regionversion; i++) { if (!rvv.contains(member, i)) { exceptionListVerified = false; getLogWriter().finer("DeltaGII:unexpected exception "+i); break; } } } return exceptionListVerified; }
public void run() { final Region r = getCache().getRegion(regionName); WaitCriterion wc = new WaitCriterion() { public boolean done() { return r.containsKey("keyFromX"); } public String description() { return "waiting for region " + regionName + " to contain keyFromX"; } }; // if the test fails here then a sync from B to A was not performed waitForCriterion(wc, 20000, 500, true); // if the test fails here something is odd because the sync was done // but the RVV doesn't know about it assertTrue(((LocalRegion)r).getVersionVector().contains(Xid, 1)); } });
private boolean shouldClear(LocalRegion r, RegionVersionVector rvv, AsyncDiskEntry ade) { if (ade.region != r) { return false; } // If no RVV, remove all of the async items for this region. if (rvv == null) { return true; } // If we are clearing based on an RVV, only remove // entries contained in the RVV if (ade.versionOnly) { return rvv.contains(ade.tag.getMemberID(), ade.tag.getRegionVersion()); } else { VersionStamp stamp = ade.de.getVersionStamp(); VersionSource member = stamp.getMemberID(); if (member == null) { // For overflow only regions, the version member may be null // because that represents the local internal distributed member member = r.getVersionMember(); } return rvv.contains(member, stamp.getRegionVersion()); } }
private boolean shouldClear(LocalRegion r, RegionVersionVector rvv, AsyncDiskEntry ade) { if (ade.region != r) { return false; } // If no RVV, remove all of the async items for this region. if (rvv == null) { return true; } // If we are clearing based on an RVV, only remove // entries contained in the RVV if (ade.versionOnly) { return rvv.contains(ade.tag.getMemberID(), ade.tag.getRegionVersion()); } else { VersionStamp stamp = ade.de.getVersionStamp(); VersionSource member = stamp.getMemberID(); if (member == null) { // For overflow only regions, the version member may be null // because that represents the local internal distributed member member = r.getVersionMember(); } return rvv.contains(member, stamp.getRegionVersion()); } }
public void run() { GiiCallback cb = (GiiCallback)InitialImageOperation.getGIITestHookForCheckingPurpose( InitialImageOperation.GIITestHookType.BeforeGetInitialImage); synchronized(cb.lockObject) { cb.lockObject.notify(); } WaitCriterion wc = new WaitCriterion() { public boolean done() { return getCache().getRegion(regionName) != null; } public String description() { return "waiting for region " + regionName + " to initialize"; } }; waitForCriterion(wc, 20000, 1000, true); // ensure that the RVV has recorded the event DistributedRegion r = (DistributedRegion)getCache().getRegion(regionName); if (!r.getVersionVector().contains(Xid, 1)) { getLogWriter().info("r's version vector is " + r.getVersionVector().fullToString()); ((LocalRegion)r).dumpBackingMap(); } assertTrue(r.containsKey("keyFromX")); // if the test fails here then the op received from X was not correctly // picked up and recorded in the RVV assertTrue(r.getVersionVector().contains(Xid, 1)); } });
&& !rvv.contains(tag.getMemberID(), tag.getRegionVersion())) { if (needsSync == null) { needsSync = new HashSet<VersionSource>();
logger.trace(LogMarker.PERSIST_RECOVERY, "clearRVV={} tag={}", clearRVV, tag); if (clearRVV.contains(tag.getMemberID(), tag.getRegionVersion())) { if (logger.isTraceEnabled(LogMarker.PERSIST_RECOVERY)) { logger.trace(LogMarker.PERSIST_RECOVERY, "okToSkip because tag={} <= clearRVV={} for drId={}", tag, clearRVV, drv.getId());
id = myId; if (!remoteRVV.contains(id, stamp.getRegionVersion())) {
VersionTag tag = entry.getValue(); tag.replaceNullIDs(vm0Id); assertTrue(vm0Id + " should contain " + tag, vm0vv.contains(tag.getMemberID(), tag.getRegionVersion())); assertTrue(vm1Id + " should contain " + tag, vm1vv.contains(tag.getMemberID(), tag.getRegionVersion())); assertTrue(vm2Id + " should contain " + tag, vm2vv.contains(tag.getMemberID(), tag.getRegionVersion())); VersionTag tag = entry.getValue(); tag.replaceNullIDs(vm1Id); assertTrue(vm0Id + " should contain " + tag, vm0vv.contains(tag.getMemberID(), tag.getRegionVersion())); assertTrue(vm1Id + " should contain " + tag, vm1vv.contains(tag.getMemberID(), tag.getRegionVersion())); assertTrue(vm2Id + " should contain " + tag, vm2vv.contains(tag.getMemberID(), tag.getRegionVersion())); VersionTag tag = entry.getValue(); tag.replaceNullIDs(vm2Id); assertTrue(vm0Id + " should contain " + tag, vm0vv.contains(tag.getMemberID(), tag.getRegionVersion())); assertTrue(vm1Id + " should contain " + tag, vm1vv.contains(tag.getMemberID(), tag.getRegionVersion())); assertTrue(vm2Id + " should contain " + tag, vm2vv.contains(tag.getMemberID(), tag.getRegionVersion()));
id = myId; if (!remoteRVV.contains(id, stamp.getRegionVersion())) {
&& !rvv.contains(tag.getMemberID(), tag.getRegionVersion())) { if (needsSync == null) { needsSync = new HashSet<VersionSource>();
if (versionVector.contains(id, stamp.getRegionVersion())) { continue;
if (versionVector.contains(id, stamp.getRegionVersion())) { if (InitialImageOperation.TRACE_GII_FINER) { getLogWriterI18n().convertToLogWriter().info("chunkEntries: for entry="+entry+",stamp="+stamp+", versionVector="+versionVector+", contains stamp.getRegionVersion="+stamp.getRegionVersion()
final void putVersionTagOnly(LocalRegion region, VersionTag tag, boolean async) { DiskRegion dr = region.getDiskRegion(); // this method will only be called by backup oplog assert dr.isBackup(); if (!async) { acquireReadLock(dr); } try { if (dr.isRegionClosed()) { region.getCancelCriterion().checkCancelInProgress(null); throw new RegionDestroyedException( LocalizedStrings.DiskRegion_THE_DISKREGION_HAS_BEEN_CLOSED_OR_DESTROYED .toLocalizedString(), dr.getName()); } if (dr.getRegionVersionVector().contains(tag.getMemberID(), tag.getRegionVersion())) { // No need to write the conflicting tag to disk if the disk RVV already // contains this tag. return; } PersistentOplogSet oplogSet = getPersistentOplogSet(dr); oplogSet.getChild().saveConflictVersionTag(region, tag, async); } finally { if (!async) { releaseReadLock(dr); } } }
+ " tag=" + tag); if (clearRVV.contains(tag.getMemberID(), tag.getRegionVersion())) { if (DiskStoreImpl.TRACE_RECOVERY) { logger.info(LocalizedStrings.DEBUG, "TRACE_RECOVERY okToSkip because tag="
id = myId; if (rvv.contains(id, re.getVersionStamp().getRegionVersion())) { if (isTraceEnabled) { logger.trace("region clear op is removing {} {}", re.getKey(), re.getVersionStamp());
final void putVersionTagOnly(LocalRegion region, VersionTag tag, boolean async) { DiskRegion dr = region.getDiskRegion(); // this method will only be called by backup oplog assert dr.isBackup(); if (!async) { acquireReadLock(dr); } try { if (dr.isRegionClosed()) { region.getCancelCriterion().checkCancelInProgress(null); throw new RegionDestroyedException( LocalizedStrings.DiskRegion_THE_DISKREGION_HAS_BEEN_CLOSED_OR_DESTROYED .toLocalizedString(), dr.getName()); } if (dr.getRegionVersionVector().contains(tag.getMemberID(), tag.getRegionVersion())) { // No need to write the conflicting tag to disk if the disk RVV already // contains this tag. return; } PersistentOplogSet oplogSet = getPersistentOplogSet(dr); oplogSet.getChild().saveConflictVersionTag(region, tag, async); } finally { if (!async) { releaseReadLock(dr); } } }
id = region.getVersionMember(); if (!rvv.contains(id, getVersionStamp().getRegionVersion())) { entryOK = true;
id = myId; if (rvv.contains(id, re.getVersionStamp().getRegionVersion())) { if (logger.finerEnabled()) { logger.finer("region clear op is removing " + re.getKeyCopy()
id = region.getVersionMember(); if (!rvv.contains(id, getVersionStamp().getRegionVersion())) { entryOK = true;