private BookKeeperClientBuilder createBKCBuilder(String bkcName, DistributedLogConfiguration conf, String zkServers, String ledgersPath, Optional<FeatureProvider> featureProviderOptional) { BookKeeperClientBuilder builder = BookKeeperClientBuilder.newBuilder() .name(bkcName) .dlConfig(conf) .zkServers(zkServers) .ledgersPath(ledgersPath) .channelFactory(channelFactory) .requestTimer(requestTimer) .featureProvider(featureProviderOptional) .statsLogger(statsLogger); LOG.info("Created shared client builder {} : zkServers = {}, ledgersPath = {}, numIOThreads = {}", new Object[] { bkcName, zkServers, ledgersPath, conf.getBKClientNumberIOThreads() }); return builder; }
protected int inspectAndRepair(List<LogSegmentMetadata> segments) throws Exception { LogSegmentMetadataStore metadataStore = getLogSegmentMetadataStore(); ZooKeeperClient zkc = getZooKeeperClient(); BKDLConfig bkdlConfig = BKDLConfig.resolveDLConfig(zkc, getUri()); BKDLConfig.propagateConfiguration(bkdlConfig, getConf()); BookKeeperClient bkc = BookKeeperClientBuilder.newBuilder() .dlConfig(getConf()) .zkServers(bkdlConfig.getBkZkServersForReader()) .ledgersPath(bkdlConfig.getBkLedgersPath()) .name("dlog") .build(); try { List<LogSegmentMetadata> segmentsToRepair = inspectLogSegments(bkc, segments); if (segmentsToRepair.isEmpty()) { System.out.println("The stream is good. No log segments to repair."); return 0; } System.out.println(segmentsToRepair.size() + " segments to repair : "); System.out.println(segmentsToRepair); System.out.println(); if (!IOUtils.confirmPrompt("Do you want to repair them (Y/N): ")) { return 0; } repairLogSegments(metadataStore, bkc, segmentsToRepair); return 0; } finally { bkc.close(); } }
bk = BookKeeperClientBuilder.newBuilder() .name("benchmark-bkc") .dlConfig(conf) .zkServers(bkdlConfig.getBkZkServersForReader()) .ledgersPath(bkdlConfig.getBkLedgersPath())
.dlConfig(conf) .zkServers(bkdlConfig.getBkZkServersForWriter()) .ledgersPath(bkdlConfig.getBkLedgersPath())
.dlConfig(conf) .zkServers(bkdlConfig.getBkZkServersForWriter()) .ledgersPath(bkdlConfig.getBkLedgersPath())
@Before public void setup() throws Exception { zkc = TestZooKeeperClientBuilder.newBuilder() .uri(createURI("/")) .build(); bkc = BookKeeperClientBuilder.newBuilder().name("bkc") .dlConfig(dlConf).ledgersPath(ledgersPath).zkc(zkc).build(); allocationExecutor = Executors.newSingleThreadScheduledExecutor(); }
@Before public void setup() throws Exception { zkc = TestZooKeeperClientBuilder.newBuilder() .zkServers(zkServers) .build(); bkc = BookKeeperClientBuilder.newBuilder() .name("bkc") .zkc(zkc) .ledgersPath(ledgersPath) .dlConfig(conf) .build(); }
public SimpleBookKeeperClient(DistributedLogConfiguration conf, URI uri) { try { zkc = ZooKeeperClientBuilder.newBuilder() .sessionTimeoutMs(conf.getZKSessionTimeoutMilliseconds()) .zkAclId(conf.getZkAclId()) .uri(uri) .build(); BKDLConfig bkdlConfig = BKDLConfig.resolveDLConfig(zkc, uri); BKDLConfig.propagateConfiguration(bkdlConfig, conf); bkc = BookKeeperClientBuilder.newBuilder() .zkc(zkc) .dlConfig(conf) .ledgersPath(bkdlConfig.getBkLedgersPath()) .name("dlog") .build(); } catch (Exception e) { close(); } } public BookKeeperClient client() {
@Before public void setup() throws Exception { zkc = TestZooKeeperClientBuilder.newBuilder() .uri(createURI("/")) .zkServers(zkServers) .build(); bkc = BookKeeperClientBuilder.newBuilder().name("bkc") .dlConfig(dlConf).ledgersPath(ledgersPath).zkc(zkc).build(); }
BKDLConfig.propagateConfiguration(bkdlConfig, conf); BookKeeperClientBuilder bkcBuilder = BookKeeperClientBuilder.newBuilder() .dlConfig(conf) .name(String.format("bk:%s:handler_dedicated", logName)) .zkServers(bkdlConfig.getBkZkServersForWriter())
@Test(timeout = 60000, expected = BKException.BKBookieHandleNotAvailableException.class) public void testOpenLedgerWhenBkcClosed() throws Exception { BookKeeperClient newBkc = BookKeeperClientBuilder.newBuilder().name("newBkc") .zkc(zkc).ledgersPath(ledgersPath).dlConfig(conf).build(); LedgerHandleCache cache = LedgerHandleCache.newBuilder().bkc(newBkc).conf(conf).build(); // closed the bkc newBkc.close(); // open ledger after bkc closed. cache.openLedger(new LogSegmentMetadata.LogSegmentMetadataBuilder("", 2, 1, 1).setRegionId(1).build(), false); }
BKDLConfig.propagateConfiguration(bkdlConfig, conf); this.writerBKCBuilder = BookKeeperClientBuilder.newBuilder() .dlConfig(conf) .name(String.format("bk:%s:dlm_writer_shared", name)) .ledgersPath(bkdlConfig.getBkLedgersPath()) } else { this.readerBKCBuilder = BookKeeperClientBuilder.newBuilder() .dlConfig(conf) .name(String.format("bk:%s:dlm_reader_shared", name)) .ledgersPath(bkdlConfig.getBkLedgersPath())
@Test(timeout = 60000, expected = BKException.ZKException.class) public void testOpenLedgerWhenZkClosed() throws Exception { ZooKeeperClient newZkc = TestZooKeeperClientBuilder.newBuilder() .name("zkc-openledger-when-zk-closed") .zkServers(zkServers) .build(); BookKeeperClient newBkc = BookKeeperClientBuilder.newBuilder() .name("bkc-openledger-when-zk-closed") .zkc(newZkc) .ledgersPath(ledgersPath) .dlConfig(conf) .build(); try { LedgerHandle lh = newBkc.get().createLedger(BookKeeper.DigestType.CRC32, "zkcClosed".getBytes(UTF_8)); lh.close(); newZkc.close(); LedgerHandleCache cache = LedgerHandleCache.newBuilder().bkc(newBkc).conf(conf).build(); // open ledger after zkc closed cache.openLedger(new LogSegmentMetadata.LogSegmentMetadataBuilder("", 2, lh.getId(), 1).setLogSegmentSequenceNo(lh.getId()).build(), false); } finally { newBkc.close(); } }
@Before @Override public void setup() throws Exception { super.setup(); scheduler = OrderedScheduler.newBuilder().corePoolSize(1).build(); lockStateExecutor = OrderedScheduler.newBuilder().corePoolSize(1).build(); // build zookeeper client URI uri = createDLMURI(""); zkc = TestZooKeeperClientBuilder.newBuilder(conf) .name("test-zkc") .uri(uri) .build(); zkc0 = TestZooKeeperClientBuilder.newBuilder(conf) .name("test-zkc0") .uri(uri) .build(); // build bookkeeper client BKDLConfig bkdlConfig = BKDLConfig.resolveDLConfig(zkc, uri); bkc = BookKeeperClientBuilder.newBuilder() .dlConfig(conf) .name("test-bkc") .ledgersPath(bkdlConfig.getBkLedgersPath()) .zkServers(DLUtils.getZKServersFromDLUri(uri)) .build(); }