LedgerFragment(LedgerHandle lh, long firstEntryId, long lastKnownEntryId, Set<Integer> bookieIndexes) { this.ledgerId = lh.getId(); this.firstEntryId = firstEntryId; this.lastKnownEntryId = lastKnownEntryId; this.bookieIndexes = bookieIndexes; this.ensemble = lh.getLedgerMetadata().getEnsembleAt(firstEntryId); this.schedule = lh.getDistributionSchedule(); SortedMap<Long, ? extends List<BookieSocketAddress>> ensembles = lh .getLedgerMetadata().getAllEnsembles(); this.isLedgerClosed = lh.getLedgerMetadata().isClosed() || !ensemble.equals(ensembles.get(ensembles.lastKey())); }
List<BookieSocketAddress> ensemble = lh.getLedgerMetadata().getEnsembleAt(eid); for (int i = 0; i < writeSet.size(); i++) { int idx = writeSet.get(i);
LOG.info("Ensemble: {} for ledger: {}", lh.getLedgerMetadata().getEnsembleAt(0L), lh.getId());
List<BookieSocketAddress> ensemble = lh.getLedgerMetadata().getEnsembleAt(eid); for (int i = 0; i < writeSet.size(); i++) { int idx = writeSet.get(i);
void initiate() { long nextEnsembleChange = startEntryId, i = startEntryId; this.requestTimeNanos = MathUtils.nowInNano(); List<BookieSocketAddress> ensemble = null; do { if (i == nextEnsembleChange) { ensemble = getLedgerMetadata().getEnsembleAt(i); nextEnsembleChange = LedgerMetadataUtils.getNextEnsembleChange(getLedgerMetadata(), i); } LedgerEntryRequest entry; if (parallelRead) { entry = new ParallelReadRequest(ensemble, lh.ledgerId, i); } else { entry = new SequenceReadRequest(ensemble, lh.ledgerId, i); } seq.add(entry); i++; } while (i <= endEntryId); // read the entries. for (LedgerEntryRequest entry : seq) { entry.read(); if (!parallelRead && clientCtx.getConf().readSpeculativeRequestPolicy.isPresent()) { speculativeTask = clientCtx.getConf().readSpeculativeRequestPolicy.get() .initiateSpeculativeRequest(clientCtx.getScheduler(), entry); } } }
List<BookieSocketAddress> curEns = lh.getLedgerMetadata().getEnsembleAt(0L); LOG.info("Ensemble: {} for ledger: {}", curEns, lh.getId());