MockMetadata(LedgerMetadata toCopy) { ensembleSize = toCopy.getEnsembleSize(); writeQuorumSize = toCopy.getWriteQuorumSize(); ackQuorumSize = toCopy.getAckQuorumSize(); lastEntryId = toCopy.getLastEntryId(); length = toCopy.getLength(); digestType = toCopy.getDigestType(); ctime = toCopy.getCtime(); isClosed = toCopy.isClosed(); customMetadata = ImmutableMap.copyOf(toCopy.getCustomMetadata()); }
int ackQ = metadata.getAckQuorumSize(); Map<String, byte[]> customMetadata = metadata.getCustomMetadata();
PendingReadOp(LedgerHandle lh, ClientContext clientCtx, long startEntryId, long endEntryId, boolean isRecoveryRead) { this.seq = new ArrayList<>((int) ((endEntryId + 1) - startEntryId)); this.future = new CompletableFuture<>(); this.lh = lh; this.clientCtx = clientCtx; this.startEntryId = startEntryId; this.endEntryId = endEntryId; this.isRecoveryRead = isRecoveryRead; this.allowFailFast = false; numPendingEntries = endEntryId - startEntryId + 1; requiredBookiesMissingEntryForRecovery = getLedgerMetadata().getWriteQuorumSize() - getLedgerMetadata().getAckQuorumSize() + 1; heardFromHosts = new HashSet<>(); heardFromHostsBitSet = new BitSet(getLedgerMetadata().getEnsembleSize()); }
lh.getLedgerMetadata().getEnsembleSize(), lh.getLedgerMetadata().getWriteQuorumSize(), lh.getLedgerMetadata().getAckQuorumSize(), lh.getLedgerMetadata().getCustomMetadata(), ensemble,
ledgerMetadata.getWriteQuorumSize(), ledgerMetadata.getAckQuorumSize(), ledgerMetadata.getEnsembleSize()); List<BookieSocketAddress> currentSegmentEnsemble = segments.get(segmentNo).getValue();
public static LedgerMetadataBuilder from(LedgerMetadata other) { LedgerMetadataBuilder builder = new LedgerMetadataBuilder(); builder.metadataFormatVersion = other.getMetadataFormatVersion(); builder.ensembleSize = other.getEnsembleSize(); builder.writeQuorumSize = other.getWriteQuorumSize(); builder.ackQuorumSize = other.getAckQuorumSize(); builder.state = other.getState(); if (builder.state == State.CLOSED) { builder.lastEntryId = Optional.of(other.getLastEntryId()); builder.length = Optional.of(other.getLength()); } builder.ensembles.putAll(other.getAllEnsembles()); if (other.hasPassword()) { builder.password = Optional.of(other.getPassword()); builder.digestType = Optional.of(other.getDigestType()); } builder.ctime = other.getCtime(); /** Hack to get around fact that ctime was never versioned correctly */ builder.storeCtime = LedgerMetadataUtils.shouldStoreCtime(other); builder.customMetadata = ImmutableMap.copyOf(other.getCustomMetadata()); return builder; }
ReadLastConfirmedAndEntryOp(LedgerHandle lh, ClientContext clientCtx, List<BookieSocketAddress> ensemble, LastConfirmedAndEntryCallback cb, long prevEntryId, long timeOutInMillis) { this.lh = lh; this.clientCtx = clientCtx; this.cb = cb; this.prevEntryId = prevEntryId; this.lastAddConfirmed = lh.getLastAddConfirmed(); this.timeOutInMillis = timeOutInMillis; this.numResponsesPending = 0; this.currentEnsemble = ensemble; // since long poll is effectively reading lac with waits, lac can be potentially // be advanced in different write quorums, so we need to make sure to cover enough // bookies before claiming lac is not advanced. this.numEmptyResponsesAllowed = getLedgerMetadata().getEnsembleSize() - getLedgerMetadata().getAckQuorumSize() + 1; this.requestTimeNano = MathUtils.nowInNano(); maxMissedReadsAllowed = getLedgerMetadata().getEnsembleSize() - getLedgerMetadata().getAckQuorumSize(); heardFromHostsBitSet = new BitSet(getLedgerMetadata().getEnsembleSize()); emptyResponsesFromHostsBitSet = new BitSet(getLedgerMetadata().getEnsembleSize()); }
.setAckQuorumSize(metadata.getAckQuorumSize()) .setEnsembleSize(metadata.getEnsembleSize()) .setLength(metadata.getLength())
LedgerMetadataFormat.Builder builder = LedgerMetadataFormat.newBuilder(); builder.setQuorumSize(metadata.getWriteQuorumSize()) .setAckQuorumSize(metadata.getAckQuorumSize()) .setEnsembleSize(metadata.getEnsembleSize()) .setLength(metadata.getLength())
distributionSchedule = new RoundRobinDistributionSchedule( metadata.getWriteQuorumSize(), metadata.getAckQuorumSize(), metadata.getEnsembleSize()); this.bookieFailureHistory = CacheBuilder.newBuilder()