/** */ boolean isCompatibleWith(BaselineTopology blt) { BaselineTopologyHistoryItem histBlt = hist.get(blt.id()); return histBlt.branchingHistory().contains(blt.branchingPointHash()); }
/** * @param blt Baseline Topology. */ public static BaselineTopologyHistoryItem fromBaseline(BaselineTopology blt) { if (blt == null) return null; List<Long> fullActivationHistory = new ArrayList<>(blt.branchingHistory().size()); fullActivationHistory.addAll(blt.branchingHistory()); return new BaselineTopologyHistoryItem(blt.id(), U.arrayList(blt.consistentIds()), fullActivationHistory); }
/** */ BaselineTopologyHistory tailFrom(int id) { BaselineTopologyHistory tail = new BaselineTopologyHistory(); for (BaselineTopologyHistoryItem item : hist) { if (item.id() >= id) tail.hist.add(item); } return tail; }
log.info("Started state transition: " + msg.activate()); BaselineTopologyHistoryItem bltHistItem = BaselineTopologyHistoryItem.fromBaseline( globalState.baselineTopology());
log.info("Started state transition: " + msg.activate()); BaselineTopologyHistoryItem bltHistItem = BaselineTopologyHistoryItem.fromBaseline( globalState.baselineTopology());
@Override public void verify(BaselineTopologyHistory bltHist) { assertNotNull(bltHist); assertEquals(2, bltHist.history().size()); BaselineTopologyHistoryItem histItem = bltHist.history().get(0); assertEquals(1, histItem.branchingHistory().size()); long actualBranchingHash0 = histItem.branchingHistory().get(0); assertEquals(expectedBranchingHash0, actualBranchingHash0); histItem = bltHist.history().get(1); assertEquals(1, histItem.branchingHistory().size()); long actualBranchingHash1 = histItem.branchingHistory().get(0); assertEquals(expectedBranchingHash1, actualBranchingHash1); } };
/** */ void writeHistoryItem(ReadWriteMetastorage metastorage, BaselineTopologyHistoryItem histItem) throws IgniteCheckedException { if (histItem == null) return; hist.add(histItem); metastorage.write(METASTORE_BLT_HIST_PREFIX + histItem.id(), histItem); }
/** * @param blt Baseline Topology. */ public static BaselineTopologyHistoryItem fromBaseline(BaselineTopology blt) { if (blt == null) return null; List<Long> fullActivationHistory = new ArrayList<>(blt.branchingHistory().size()); fullActivationHistory.addAll(blt.branchingHistory()); return new BaselineTopologyHistoryItem(blt.id(), U.arrayList(blt.consistentIds()), fullActivationHistory); }
@Override public void verify(BaselineTopologyHistory bltHist) { assertNotNull(bltHist); assertEquals(1, bltHist.history().size()); BaselineTopologyHistoryItem histItem = bltHist.history().get(0); assertEquals(1, histItem.branchingHistory().size()); long actualBranchingHash = histItem.branchingHistory().get(0); assertEquals(expectedBranchingHash, actualBranchingHash); } };
/** */ void removeHistory(ReadWriteMetastorage metastorage) throws IgniteCheckedException { if (hist.isEmpty()) return; for (BaselineTopologyHistoryItem histItem : hist) metastorage.remove(METASTORE_BLT_HIST_PREFIX + histItem.id()); hist.clear(); }
/** * @param ig Ignite. * @param expBltId Expected BaselineTopology ID. * @param expBltHistSize Expected Baseline history size. * @param expBranchingHistSize Expected branching history size. * @param expActivationHash Expected activation hash. */ private void checkBaselineTopologyOnNode( Ignite ig, int expBltId, int expBltHistSize, int expBranchingHistSize, long expActivationHash) { BaselineTopology blt = getBaselineTopology(ig); BaselineTopologyHistory bltHist = getBaselineTopologyHistory(ig); assertNotNull(bltHist); assertEquals(expBltId, blt.id()); assertEquals(expBltHistSize, bltHist.history().size()); BaselineTopologyHistoryItem histItem = bltHist.history().get(0); assertEquals(expBranchingHistSize, histItem.branchingHistory().size()); assertEquals(expActivationHash, (long)histItem.branchingHistory().get(0)); }
/** */ void flushHistoryItems(ReadWriteMetastorage metastorage) throws IgniteCheckedException { while(!bufferedForStore.isEmpty()) { BaselineTopologyHistoryItem item = bufferedForStore.remove(); metastorage.write(METASTORE_BLT_HIST_PREFIX + item.id(), item); } } }
/** */ boolean isCompatibleWith(BaselineTopology blt) { BaselineTopologyHistoryItem histBlt = hist.get(blt.id()); return histBlt.branchingHistory().contains(blt.branchingPointHash()); }
/** * @param blt Blt. */ private void writeBaselineTopology(BaselineTopology blt, BaselineTopologyHistoryItem prevBltHistItem) throws IgniteCheckedException { assert metastorage != null; if (inMemoryMode) return; sharedCtx.database().checkpointReadLock(); try { if (blt != null) { if (log.isInfoEnabled()) { U.log(log, "Writing BaselineTopology[id=" + blt.id() + "]"); if (prevBltHistItem != null) U.log(log, "Writing BaselineTopologyHistoryItem[id=" + prevBltHistItem.id() + "]"); } bltHist.writeHistoryItem(metastorage, prevBltHistItem); metastorage.write(METASTORE_CURR_BLT_KEY, blt); } else { if (log.isInfoEnabled()) U.log(log, "Removing BaselineTopology and history"); metastorage.remove(METASTORE_CURR_BLT_KEY); bltHist.removeHistory(metastorage); } } finally { sharedCtx.database().checkpointReadUnlock(); } }
/** */ void flushHistoryItems(ReadWriteMetastorage metastorage) throws IgniteCheckedException { while(!bufferedForStore.isEmpty()) { BaselineTopologyHistoryItem item = bufferedForStore.remove(); metastorage.write(METASTORE_BLT_HIST_PREFIX + item.id(), item); } } }
/** */ BaselineTopologyHistory tailFrom(int id) { BaselineTopologyHistory tail = new BaselineTopologyHistory(); for (BaselineTopologyHistoryItem item : hist) { if (item.id() >= id) tail.hist.add(item); } return tail; }
/** */ void writeHistoryItem(ReadWriteMetastorage metastorage, BaselineTopologyHistoryItem histItem) throws IgniteCheckedException { if (histItem == null) return; hist.add(histItem); metastorage.write(METASTORE_BLT_HIST_PREFIX + histItem.id(), histItem); }
/** */ void removeHistory(ReadWriteMetastorage metastorage) throws IgniteCheckedException { if (hist.isEmpty()) return; for (BaselineTopologyHistoryItem histItem : hist) metastorage.remove(METASTORE_BLT_HIST_PREFIX + histItem.id()); hist.clear(); }
/** * @param blt Blt. */ private void writeBaselineTopology(BaselineTopology blt, BaselineTopologyHistoryItem prevBltHistItem) throws IgniteCheckedException { assert metastorage != null; if (inMemoryMode) return; sharedCtx.database().checkpointReadLock(); try { if (blt != null) { if (log.isInfoEnabled()) { U.log(log, "Writing BaselineTopology[id=" + blt.id() + "]"); if (prevBltHistItem != null) U.log(log, "Writing BaselineTopologyHistoryItem[id=" + prevBltHistItem.id() + "]"); } bltHist.writeHistoryItem(metastorage, prevBltHistItem); metastorage.write(METASTORE_CURR_BLT_KEY, blt); } else { if (log.isInfoEnabled()) U.log(log, "Removing BaselineTopology and history"); metastorage.remove(METASTORE_CURR_BLT_KEY); bltHist.removeHistory(metastorage); } } finally { sharedCtx.database().checkpointReadUnlock(); } }