public static LedgerManager getLedgerManager(BookKeeper bk) { return bk.getLedgerManager(); }
@Override public LedgerManager getLedgerManager() { return BookKeeper.this.getLedgerManager(); }
public UpdateLedgerOp(final BookKeeper bkc, final BookKeeperAdmin admin) { this.lm = bkc.getLedgerManager(); this.admin = admin; }
public static LedgerManager getLedgerManager(BookKeeper bk) { return bk.getLedgerManager(); }
@Override public void operationComplete(int rc, Long ledgerId) { if (BKException.Code.OK != rc) { createComplete(rc, null); return; } LedgerCreateOp.this.ledgerId = ledgerId; // create a ledger with metadata bk.getLedgerManager().createLedgerMetadata(ledgerId, metadata) .whenComplete((written, exception) -> metadataCallback(written, exception)); } });
public void asyncGetLedgersContainBookies(final Set<BookieSocketAddress> bookies, final GenericCallback<SortedMap<Long, LedgerMetadata>> callback) { final SortedMap<Long, LedgerMetadata> ledgers = new ConcurrentSkipListMap<Long, LedgerMetadata>(); bkc.getLedgerManager().asyncProcessLedgers(new Processor<Long>() { @Override public void process(final Long lid, final AsyncCallback.VoidCallback cb) {
bkc.getLedgerManager().asyncProcessLedgers( ledgerProcessor, new RecoverCallbackWrapper(cb), context, BKException.Code.OK, BKException.Code.LedgerRecoveryException);
final LedgerRangeIterator iterator = bkc.getLedgerManager().getLedgerRanges(); return new Iterable<Long>() { public Iterator<Long> iterator() {
/** * Inititates the ledger open operation. */ public void initiate() { startTime = MathUtils.nowInNano(); /** * Asynchronously read the ledger metadata node. */ bk.getLedgerManager().readLedgerMetadata(ledgerId) .whenComplete((metadata, exception) -> { if (exception != null) { openComplete(BKException.getExceptionCode(exception), null); } else { openWithMetadata(metadata); } }); }
@Override public void process(final Long lid, final AsyncCallback.VoidCallback cb) { bkc.getLedgerManager().readLedgerMetadata(lid) .whenComplete((metadata, exception) -> { if (BKException.getExceptionCode(exception) == BKException.Code.NoSuchLedgerExistsException) { // the ledger was deleted during this iteration. cb.processResult(BKException.Code.OK, null, null); return; } else if (exception != null) { cb.processResult(BKException.getExceptionCode(exception), null, null); return; } Set<BookieSocketAddress> bookiesInLedger = LedgerMetadataUtils.getBookiesInThisLedger(metadata.getValue()); Sets.SetView<BookieSocketAddress> intersection = Sets.intersection(bookiesInLedger, bookies); if (!intersection.isEmpty()) { ledgers.put(lid, metadata.getValue()); } cb.processResult(BKException.Code.OK, null, null); }); } }, new AsyncCallback.VoidCallback() {
private void replicateLedgerFragment(LedgerHandle lh, final LedgerFragment ledgerFragment, final Map<Integer, BookieSocketAddress> targetBookieAddresses) throws InterruptedException, BKException { CompletableFuture<Void> result = new CompletableFuture<>(); ResultCallBack resultCallBack = new ResultCallBack(result); SingleFragmentCallback cb = new SingleFragmentCallback( resultCallBack, lh, bkc.getLedgerManager(), ledgerFragment.getFirstEntryId(), getReplacementBookiesMap(ledgerFragment, targetBookieAddresses)); Set<BookieSocketAddress> targetBookieSet = Sets.newHashSet(); targetBookieSet.addAll(targetBookieAddresses.values()); asyncRecoverLedgerFragment(lh, ledgerFragment, cb, targetBookieSet); try { SyncCallbackUtils.waitForResult(result); } catch (BKException err) { throw BKException.create(bkc.getReturnRc(err.getCode())); } }
LedgerFragmentReplicator.SingleFragmentCallback cb = new LedgerFragmentReplicator.SingleFragmentCallback(ledgerFragmentsMcb, lh, bkc.getLedgerManager(), startEntryId, getReplacementBookiesMap(ensemble, targetBookieAddresses)); LedgerFragment ledgerFragment = new LedgerFragment(lh,
/** * Initiates the operation. */ public void initiate() { // Asynchronously delete the ledger from meta manager // When this completes, it will invoke the callback method below. bk.getLedgerManager().removeLedgerMetadata(ledgerId, Version.ANY) .whenCompleteAsync((ignore, exception) -> { if (exception != null) { deleteOpLogger.registerFailedEvent(MathUtils.elapsedNanos(startTime), TimeUnit.NANOSECONDS); } else { deleteOpLogger.registerSuccessfulEvent(MathUtils.elapsedNanos(startTime), TimeUnit.NANOSECONDS); } cb.deleteComplete(BKException.getExceptionCode(exception), this.ctx); }, bk.getMainWorkerPool().chooseThread(ledgerId)); }
} else { bk.getLedgerManager().createLedgerMetadata(ledgerId, metadata) .whenComplete((written, exception) -> metadataCallback(written, exception));