@Override public void setStatus(long tid, org.apache.accumulo.fate.TStore.TStatus status) { store.setStatus(tid, status); switch (status) { case IN_PROGRESS: case FAILED_IN_PROGRESS: removeCandidate(tid); break; case FAILED: case SUCCESSFUL: addCandidate(tid); break; default: break; } }
@Override public void run() { store.ageOff(); } }, 63000, 63000);
private synchronized void removeCandidate(long txid) { Long time = candidates.remove(txid); if (time != null && time <= minTime) updateMinTime(); }
@Override public long create() { long txid = store.create(); addCandidate(txid); return txid; }
final AgeOffStore<Master> store = new AgeOffStore<>(new org.apache.accumulo.fate.ZooStore<>( getZooKeeperRoot() + Constants.ZFATE, context.getZooReaderWriter()), 1000 * 60 * 60 * 8);
@Override public void delete(long tid) { store.delete(tid); removeCandidate(tid); }
public AgeOffStore(TStore<T> store, long ageOffTime, TimeSource timeSource) { this.store = store; this.ageOffTime = ageOffTime; this.timeSource = timeSource; candidates = new HashMap<>(); minTime = Long.MAX_VALUE; List<Long> txids = store.list(); for (Long txid : txids) { store.reserve(txid); try { switch (store.getStatus(txid)) { case NEW: case FAILED: case SUCCESSFUL: addCandidate(txid); break; default: break; } } finally { store.unreserve(txid, 0); } } }
final AgeOffStore<Master> store = new AgeOffStore<Master>(new org.apache.accumulo.fate.ZooStore<Master>(ZooUtil.getRoot(instance) + Constants.ZFATE, ZooReaderWriter.getRetryingInstance()), 1000 * 60 * 60 * 8);
@Override public void delete(long tid) { store.delete(tid); removeCandidate(tid); }
@Override public void setStatus(long tid, org.apache.accumulo.fate.TStore.TStatus status) { store.setStatus(tid, status); switch (status) { case IN_PROGRESS: case FAILED_IN_PROGRESS: removeCandidate(tid); break; case FAILED: case SUCCESSFUL: addCandidate(tid); break; default: break; } }
@Override public long create() { long txid = store.create(); addCandidate(txid); return txid; }
@Override public void run() { store.ageOff(); } }, 63000, 63000);
final AgeOffStore<Master> store = new AgeOffStore<>( new org.apache.accumulo.fate.ZooStore<Master>( ZooUtil.getRoot(getInstance()) + Constants.ZFATE, ZooReaderWriter.getInstance()),
private synchronized void removeCandidate(long txid) { Long time = candidates.remove(txid); if (time != null && time <= minTime) updateMinTime(); }
public AgeOffStore(TStore<T> store, long ageOffTime, TimeSource timeSource) { this.store = store; this.ageOffTime = ageOffTime; this.timeSource = timeSource; candidates = new HashMap<>(); minTime = Long.MAX_VALUE; List<Long> txids = store.list(); for (Long txid : txids) { store.reserve(txid); try { switch (store.getStatus(txid)) { case NEW: case FAILED: case SUCCESSFUL: addCandidate(txid); break; default: break; } } finally { store.unreserve(txid, 0); } } }
@Override public void run() { store.ageOff(); } }, 63000, 63000);