void initiate() { // capture currentNonDurableLastAddConfirmed // remember that we are inside OrderedExecutor, this induces a strict ordering // on the sequence of events this.currentNonDurableLastAddConfirmed = lh.pendingAddsSequenceHead; if (LOG.isDebugEnabled()) { LOG.debug("force {} clientNonDurableLac {}", lh.ledgerId, currentNonDurableLastAddConfirmed); } // we need to send the request to every bookie in the ensamble this.ackSet = lh.distributionSchedule.getEnsembleAckSet(); DistributionSchedule.WriteSet writeSet = lh.getDistributionSchedule() .getEnsembleSet(currentNonDurableLastAddConfirmed); try { for (int i = 0; i < writeSet.size(); i++) { sendForceLedgerRequest(writeSet.get(i)); } } finally { writeSet.recycle(); } }
ReadLACAndEntryRequest(List<BookieSocketAddress> ensemble, long lId, long eId) { this.entryImpl = LedgerEntryImpl.create(lId, eId); this.ensemble = ensemble; this.writeSet = lh.getDistributionSchedule().getEnsembleSet(eId); if (clientCtx.getConf().enableReorderReadSequence) { this.orderedEnsemble = clientCtx.getPlacementPolicy().reorderReadLACSequence(ensemble, lh.getBookiesHealthInfo(), writeSet.copy()); } else { this.orderedEnsemble = writeSet.copy(); } }