LogSegmentReader(String streamName, DistributedLogConfiguration conf, BookKeeper bk, LogSegmentSplit split) throws IOException { this.streamName = streamName; this.bk = bk; this.metadata = split.getMetadata(); try { this.lh = bk.openLedgerNoRecovery( split.getLedgerId(), BookKeeper.DigestType.CRC32, conf.getBKDigestPW().getBytes(UTF_8)); } catch (BKException e) { throw new IOException(e); } catch (InterruptedException e) { Thread.currentThread().interrupt(); throw new IOException(e); } }
private Map<BookieSocketAddress, Integer> getBookieStats(LogSegmentMetadata segment) throws Exception { Map<BookieSocketAddress, Integer> stats = new HashMap<BookieSocketAddress, Integer>(); LedgerHandle lh = bkc.client().get().openLedgerNoRecovery(segment.getLedgerId(), BookKeeper.DigestType.CRC32, getConf().getBKDigestPW().getBytes(UTF_8)); long eidFirst = 0; for (SortedMap.Entry<Long, ArrayList<BookieSocketAddress>> entry : LedgerReader.bookiesForLedger(lh).entrySet()) { long eidLast = entry.getKey().longValue(); long count = eidLast - eidFirst + 1; for (BookieSocketAddress bookie : entry.getValue()) { merge(stats, bookie, (int) count); } eidFirst = eidLast; } return stats; }
@Override protected int runCmd() throws Exception { LedgerHandle lh = getBookKeeperClient().get().openLedgerNoRecovery( getLedgerID(), BookKeeper.DigestType.CRC32, dlConf.getBKDigestPW().getBytes(UTF_8)); try { long lac = lh.readLastConfirmed(); System.out.println("LastAddConfirmed: " + lac); } finally { lh.close(); } return 0; }
@Override protected int runCmd() throws Exception { LedgerHandle lh = getBookKeeperClient().get().openLedgerNoRecovery( getLedgerID(), BookKeeper.DigestType.CRC32, dlConf.getBKDigestPW().getBytes(UTF_8)); final CountDownLatch doneLatch = new CountDownLatch(1); final AtomicInteger resultHolder = new AtomicInteger(-1234); BookkeeperInternalCallbacks.GenericCallback<Void> recoverCb = new BookkeeperInternalCallbacks.GenericCallback<Void>() { @Override public void operationComplete(int rc, Void result) { resultHolder.set(rc); doneLatch.countDown(); } }; try { BookKeeperAccessor.forceRecoverLedger(lh, recoverCb); doneLatch.await(); if (BKException.Code.OK != resultHolder.get()) { throw BKException.create(resultHolder.get()); } } finally { lh.close(); } return 0; }
private LedgerHandle openLedgerNoRecovery(LedgerHandle lh) throws Exception { return bkc.get().openLedgerNoRecovery(lh.getId(), BookKeeper.DigestType.CRC32, conf.getBKDigestPW().getBytes(UTF_8)); }
List<String> dumpedEntries = new ArrayList<String>(); if (segment.isInProgress()) { LedgerHandle lh = bkc.get().openLedgerNoRecovery(segment.getLedgerId(), BookKeeper.DigestType.CRC32, dlConf.getBKDigestPW().getBytes(UTF_8)); try {
private long calculateStreamSpaceUsage(final com.twitter.distributedlog.DistributedLogManagerFactory factory, final String stream) throws IOException { DistributedLogManager dlm = factory.createDistributedLogManager(stream, com.twitter.distributedlog.DistributedLogManagerFactory.ClientSharingOption.SharedClients); long totalBytes = 0; try { List<LogSegmentMetadata> segments = dlm.getLogSegments(); for (LogSegmentMetadata segment : segments) { try { LedgerHandle lh = getBookKeeperClient(factory).get().openLedgerNoRecovery(segment.getLedgerId(), BookKeeper.DigestType.CRC32, conf.getBKDigestPW().getBytes(UTF_8)); totalBytes += lh.getLength(); lh.close(); } catch (BKException e) { logger.error("Failed to open ledger {} : ", segment.getLedgerId(), e); throw new IOException("Failed to open ledger " + segment.getLedgerId(), e); } catch (InterruptedException e) { logger.warn("Interrupted on opening ledger {} : ", segment.getLedgerId(), e); Thread.currentThread().interrupt(); throw new DLInterruptedException("Interrupted on opening ledger " + segment.getLedgerId(), e); } } } finally { dlm.close(); } return totalBytes; }
@Override protected int runCmd() throws Exception { LedgerHandle lh = getBookKeeperClient().get().openLedgerNoRecovery(getLedgerID(), BookKeeper.DigestType.CRC32, dlConf.getBKDigestPW().getBytes(UTF_8)); try { if (null == fromEntryId) { fromEntryId = 0L; } if (null == untilEntryId) { untilEntryId = lh.readLastConfirmed(); } if (untilEntryId >= fromEntryId) { if (readAllBookies) { LedgerReader lr = new LedgerReader(getBookKeeperClient().get()); if (readLac) { readLacsFromAllBookies(lr, lh, fromEntryId, untilEntryId); } else { readEntriesFromAllBookies(lr, lh, fromEntryId, untilEntryId); } } else { simpleReadEntries(lh, fromEntryId, untilEntryId); } } else { System.out.println("No entries."); } } finally { lh.close(); } return 0; }
Stopwatch stopwatch = Stopwatch.createStarted(); long lid = segment.getLedgerId(); LedgerHandle lh = bk.openLedgerNoRecovery( lid, BookKeeper.DigestType.CRC32, conf.getBKDigestPW().getBytes(UTF_8)); logger.info("It took {} ms to open log segment {}",
long ledgerId = segments.get(0).getLedgerId(); LedgerHandle lh = ((BKDistributedLogNamespace) namespace).getReaderBKC() .get().openLedgerNoRecovery(ledgerId, BookKeeper.DigestType.CRC32, confLocal.getBKDigestPW().getBytes(UTF_8)); LedgerMetadata metadata = BookKeeperAccessor.getLedgerMetadata(lh); assertEquals(DistributedLogConfiguration.BKDL_BOOKKEEPER_ENSEMBLE_SIZE_DEFAULT, metadata.getEnsembleSize()); ledgerId = segments.get(0).getLedgerId(); lh = ((BKDistributedLogNamespace) namespace).getReaderBKC() .get().openLedgerNoRecovery(ledgerId, BookKeeper.DigestType.CRC32, confLocal.getBKDigestPW().getBytes(UTF_8)); metadata = BookKeeperAccessor.getLedgerMetadata(lh); assertEquals(DistributedLogConfiguration.BKDL_BOOKKEEPER_ENSEMBLE_SIZE_DEFAULT - 1, metadata.getEnsembleSize());
LedgerHandle readLh = bkc.get().openLedgerNoRecovery(getLedgerHandle(perStreamWriter).getId(), BookKeeper.DigestType.CRC32, conf.getBKDigestPW().getBytes(UTF_8));
/** * Opens a ledger for reading. This operation does not fence out the ledger. * * @param ledgerId The Id of the Ledger to open. * @param bookKeeper A references to the BookKeeper client to use. * @param config Configuration to use. * @return A LedgerHandle for the newly opened ledger. * @throws DurableDataLogException If an exception occurred. The causing exception is wrapped inside it. */ static LedgerHandle openRead(long ledgerId, BookKeeper bookKeeper, BookKeeperConfig config) throws DurableDataLogException { try { return Exceptions.handleInterruptedCall( () -> bookKeeper.openLedgerNoRecovery(ledgerId, LEDGER_DIGEST_TYPE, config.getBKPassword())); } catch (BKException bkEx) { throw new DurableDataLogException(String.format("Unable to open-read ledger %d.", ledgerId), bkEx); } }
private Map<BookieSocketAddress, Integer> getBookieStats(LogSegmentMetadata segment) throws Exception { Map<BookieSocketAddress, Integer> stats = new HashMap<BookieSocketAddress, Integer>(); LedgerHandle lh = bkc.client().get().openLedgerNoRecovery(segment.getLogSegmentId(), BookKeeper.DigestType.CRC32, getConf().getBKDigestPW().getBytes(UTF_8)); long eidFirst = 0; for (SortedMap.Entry<Long, ? extends List<BookieSocketAddress>> entry : LedgerReader.bookiesForLedger(lh).entrySet()) { long eidLast = entry.getKey().longValue(); long count = eidLast - eidFirst + 1; for (BookieSocketAddress bookie : entry.getValue()) { merge(stats, bookie, (int) count); } eidFirst = eidLast; } return stats; }
@Override protected int runCmd() throws Exception { LedgerHandle lh = getBookKeeperClient().get().openLedgerNoRecovery( getLedgerID(), BookKeeper.DigestType.CRC32, dlConf.getBKDigestPW().getBytes(UTF_8)); try { long lac = lh.readLastConfirmed(); System.out.println("LastAddConfirmed: " + lac); } finally { lh.close(); } return 0; }
@Override protected int runCmd() throws Exception { LedgerHandle lh = getBookKeeperClient().get().openLedgerNoRecovery( getLedgerID(), BookKeeper.DigestType.CRC32, dlConf.getBKDigestPW().getBytes(UTF_8)); final CountDownLatch doneLatch = new CountDownLatch(1); final AtomicInteger resultHolder = new AtomicInteger(-1234); BookkeeperInternalCallbacks.GenericCallback<Void> recoverCb = new BookkeeperInternalCallbacks.GenericCallback<Void>() { @Override public void operationComplete(int rc, Void result) { resultHolder.set(rc); doneLatch.countDown(); } }; try { BookKeeperAccessor.forceRecoverLedger(lh, recoverCb); doneLatch.await(); if (BKException.Code.OK != resultHolder.get()) { throw BKException.create(resultHolder.get()); } } finally { lh.close(); } return 0; }
lh = bookKeeper.openLedgerNoRecovery(previous, BookKeeper.DigestType.CRC32C, sharedSecret.getBytes(StandardCharsets.UTF_8)); } catch (BKException.BKLedgerRecoveryException e) {
handle = bookKeeper.openLedger(ledgerId, BookKeeper.DigestType.CRC32C, sharedSecret.getBytes(StandardCharsets.UTF_8)); } else { handle = bookKeeper.openLedgerNoRecovery(ledgerId, BookKeeper.DigestType.CRC32C, sharedSecret.getBytes(StandardCharsets.UTF_8));
List<String> dumpedEntries = new ArrayList<String>(); if (segment.isInProgress()) { LedgerHandle lh = bkc.get().openLedgerNoRecovery(segment.getLogSegmentId(), BookKeeper.DigestType.CRC32, dlConf.getBKDigestPW().getBytes(UTF_8)); try {
private long calculateStreamSpaceUsage(final Namespace namespace, final String stream) throws IOException { DistributedLogManager dlm = namespace.openLog(stream); long totalBytes = 0; try { List<LogSegmentMetadata> segments = dlm.getLogSegments(); for (LogSegmentMetadata segment : segments) { try { LedgerHandle lh = getBookKeeperClient(namespace).get().openLedgerNoRecovery(segment.getLogSegmentId(), BookKeeper.DigestType.CRC32, conf.getBKDigestPW().getBytes(UTF_8)); totalBytes += lh.getLength(); lh.close(); } catch (BKException e) { logger.error("Failed to open ledger {} : ", segment.getLogSegmentId(), e); throw new IOException("Failed to open ledger " + segment.getLogSegmentId(), e); } catch (InterruptedException e) { logger.warn("Interrupted on opening ledger {} : ", segment.getLogSegmentId(), e); Thread.currentThread().interrupt(); throw new DLInterruptedException("Interrupted on opening ledger " + segment.getLogSegmentId(), e); } } } finally { dlm.close(); } return totalBytes; }
@Override protected int runCmd() throws Exception { LedgerHandle lh = getBookKeeperClient().get() .openLedgerNoRecovery(getLedgerID(), BookKeeper.DigestType.CRC32, dlConf.getBKDigestPW().getBytes(UTF_8)); try {