gpt4 book ai didi

org.apache.zookeeper.server.ZKDatabase类的使用及代码示例

转载 作者:知者 更新时间:2024-03-16 10:20:40 30 4
gpt4 key购买 nike

本文整理了Java中org.apache.zookeeper.server.ZKDatabase类的一些代码示例,展示了ZKDatabase类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ZKDatabase类的具体详情如下:
包路径:org.apache.zookeeper.server.ZKDatabase
类名称:ZKDatabase

ZKDatabase介绍

[英]This class maintains the in memory database of zookeeper server states that includes the sessions, datatree and the committed logs. It is booted up after reading the logs and snapshots from the disk.
[中]此类维护zookeeper服务器状态的内存数据库,其中包括会话、数据树和提交的日志。它在从磁盘读取日志和快照后启动。

代码示例

代码示例来源:origin: apache/hbase

/**
 * Kill one back up ZK servers.
 *
 * @throws IOException if waiting for the shutdown of a server fails
 */
public void killOneBackupZooKeeperServer() throws IOException, InterruptedException {
 if (!started || activeZKServerIndex < 0 || standaloneServerFactoryList.size() <= 1) {
  return ;
 }
 int backupZKServerIndex = activeZKServerIndex+1;
 // Shutdown the current active one
 NIOServerCnxnFactory standaloneServerFactory =
  standaloneServerFactoryList.get(backupZKServerIndex);
 int clientPort = clientPortList.get(backupZKServerIndex);
 standaloneServerFactory.shutdown();
 if (!waitForServerDown(clientPort, connectionTimeout)) {
  throw new IOException("Waiting for shutdown of standalone server");
 }
 zooKeeperServers.get(backupZKServerIndex).getZKDatabase().close();
 // remove this backup zk server
 standaloneServerFactoryList.remove(backupZKServerIndex);
 clientPortList.remove(backupZKServerIndex);
 zooKeeperServers.remove(backupZKServerIndex);
 LOG.info("Kill one backup ZK servers in the cluster " +
   "on client port: " + clientPort);
}

代码示例来源:origin: apache/zookeeper

/**
 * Default constructor, relies on the config for its argument values
 *
 * @throws IOException
 */
public ZooKeeperServer(FileTxnSnapLog txnLogFactory)
  throws IOException
{
  this(txnLogFactory, DEFAULT_TICK_TIME, -1, -1, new ZKDatabase(txnLogFactory));
}

代码示例来源:origin: apache/zookeeper

private byte[] getKey(ZooKeeperServer zks) {
  ZKDatabase db = zks.getZKDatabase();
  if (db != null) {
    try {
      Stat stat = new Stat();
      return db.getData("/key", stat, null);
    } catch (NoNodeException e) {
      LOG.error("getData failed", e);
    }
  }
  return null;
}

代码示例来源:origin: apache/zookeeper

public void startdata()
throws IOException, InterruptedException {
  //check to see if zkDb is not null
  if (zkDb == null) {
    zkDb = new ZKDatabase(this.txnLogFactory);
  }
  if (!zkDb.isInitialized()) {
    loadData();
  }
}

代码示例来源:origin: apache/zookeeper

/**
 * deserialize a snapshot from an input archive
 * @param ia the input archive you want to deserialize from
 * @throws IOException
 */
public void deserializeSnapshot(InputArchive ia) throws IOException {
  clear();
  SerializeUtils.deserializeSnapshot(getDataTree(),ia,getSessionWithTimeOuts());
  initialized = true;
}

代码示例来源:origin: apache/zookeeper

/**
 * returns the highest zxid that this host has seen
 *
 * @return the highest zxid for this host
 */
public long getLastLoggedZxid() {
  if (!zkDb.isInitialized()) {
    loadDataBase();
  }
  return zkDb.getDataTreeLastProcessedZxid();
}

代码示例来源:origin: apache/zookeeper

zks.getZKDatabase().setlastProcessedZxid(
    zks.getZKDatabase().getDataTreeLastProcessedZxid() - 10);
LOG.info("Set lastProcessedZxid to "
    + zks.getZKDatabase().getDataTreeLastProcessedZxid());

代码示例来源:origin: apache/zookeeper

File tmpLogDir  = ClientBase.createTmpDir();
ClientBase.setupTestEnv();
ZooKeeperServer zks = new ZooKeeperServer(tmpSnapDir, tmpLogDir, 3000);
SyncRequestProcessor.setSnapCount(SNAP_COUNT);
final int PORT = Integer.parseInt(HOSTPORT.split(":")[1]);
zks.shutdown();
Assert.assertTrue("waiting for server to shutdown",
    ClientBase.waitForServerDown(HOSTPORT, CONNECTION_TIMEOUT));
zks = new ZooKeeperServer(tmpSnapDir, tmpLogDir, 3000);
zks.startdata();
long zxid = zks.getZKDatabase().getDataTreeLastProcessedZxid();
LOG.info("After clean restart, zxid = " + zxid);
Assert.assertTrue("zxid > 0", zxid > 0);
try {
  zks.startdata();
  zxid = zks.getZKDatabase().loadDataBase();
  Assert.fail("Should have gotten exception for corrupted database");
} catch (IOException e) {

代码示例来源:origin: apache/zookeeper

FileTxnLog.setTxnLogSizeLimit(LOG_SIZE_LIMIT);
ZooKeeperServer zks = new ZooKeeperServer(tmpDir, tmpDir, 3000);
final int PORT = Integer.parseInt(HOSTPORT.split(":")[1]);
ServerCnxnFactory f = ServerCnxnFactory.createFactory(PORT, -1);
zks = new ZooKeeperServer(tmpDir, tmpDir, 3000);
zks.startdata();
ZKDatabase db = zks.getZKDatabase();
 byte[] data = db.getData("/node-" + i, stat, null);
 Assert.assertArrayEquals("Missmatch data", bytes, data);
 Assert.assertTrue("Unknown zxid ", zxids.contains(stat.getMzxid()));

代码示例来源:origin: apache/zookeeper

@After
public void teardown() throws Exception {
  // count down to avoid infinite blocking call due to this latch, if
  // any.
  startupDelayLatch.countDown();
  if (servcnxnf != null) {
    servcnxnf.shutdown();
  }
  if (zks != null) {
    zks.shutdown();
  }
  if (zks.getZKDatabase() != null) {
    zks.getZKDatabase().close();
  }
  ClientBase.recursiveDelete(tmpDir);
}

代码示例来源:origin: apache/zookeeper

@Override
  public void commandRun() {
    if (!isZKServerRunning()) {
      pw.println(ZK_NOT_SERVING);
    } else {
      DataTree dt = zkServer.getZKDatabase().getDataTree();
      if (len == FourLetterCommands.wchsCmd) {
        dt.dumpWatchesSummary(pw);
      } else if (len == FourLetterCommands.wchpCmd) {
        dt.dumpWatches(pw, true);
      } else {
        dt.dumpWatches(pw, false);
      }
      pw.println();
    }
  }
}

代码示例来源:origin: apache/zookeeper

zks.getZKDatabase().addCommittedProposal(request);
long lastZxid = zks.getZKDatabase().getDataTreeLastProcessedZxid();
    Stat stat = zks.getZKDatabase().statNode(path, existsRequest
        .getWatch() ? cnxn : null);
    rsp = new ExistsResponse(stat);
        getDataRequest);
    path = getDataRequest.getPath();
    DataNode n = zks.getZKDatabase().getNode(path);
    if (n == null) {
      throw new KeeperException.NoNodeException();
    PrepRequestProcessor.checkACL(zks, request.cnxn, zks.getZKDatabase().aclForNode(n),
        ZooDefs.Perms.READ,
        request.authInfo, path, null);
    Stat stat = new Stat();
    byte b[] = zks.getZKDatabase().getData(path, stat,
        getDataRequest.getWatch() ? cnxn : null);
    rsp = new GetDataResponse(b, stat);
    ByteBufferInputStream.byteBuffer2Record(request.request, setWatches);
    long relativeZxid = setWatches.getRelativeZxid();
    zks.getZKDatabase().setWatches(relativeZxid,
        setWatches.getDataWatches(),
        setWatches.getExistWatches(),
    path = getACLRequest.getPath();

代码示例来源:origin: org.apache.zookeeper/zookeeper

zks.getZKDatabase().addCommittedProposal(request);
    zks.getZKDatabase().getDataTreeLastProcessedZxid(), 0), null, "response");
return;
Stat stat = zks.getZKDatabase().statNode(path, existsRequest
    .getWatch() ? cnxn : null);
rsp = new ExistsResponse(stat);
ByteBufferInputStream.byteBuffer2Record(request.request,
    getDataRequest);
DataNode n = zks.getZKDatabase().getNode(getDataRequest.getPath());
if (n == null) {
  throw new KeeperException.NoNodeException();
PrepRequestProcessor.checkACL(zks, zks.getZKDatabase().aclForNode(n),
    ZooDefs.Perms.READ,
    request.authInfo);
Stat stat = new Stat();
byte b[] = zks.getZKDatabase().getData(getDataRequest.getPath(), stat,
    getDataRequest.getWatch() ? cnxn : null);
rsp = new GetDataResponse(b, stat);
ByteBufferInputStream.byteBuffer2Record(request.request, setWatches);
long relativeZxid = setWatches.getRelativeZxid();
zks.getZKDatabase().setWatches(relativeZxid, 
    setWatches.getDataWatches(), 
    setWatches.getExistWatches(),

代码示例来源:origin: apache/zookeeper

ServerStats serverStats = zkServer.serverStats();
pw.print(serverStats.toString());
pw.print("Node count: ");
pw.println(zkServer.getZKDatabase().getNodeCount());
if (serverStats.getServerState().equals("leader")) {
  Leader leader = ((LeaderZooKeeperServer)zkServer).getLeader();

代码示例来源:origin: org.apache.hadoop/zookeeper

rc = zks.getZKDatabase().processTxn(request.hdr, request.txn);
if (request.type == OpCode.createSession) {
  if (request.txn instanceof CreateSessionTxn) {
zks.getZKDatabase().addCommittedProposal(request);
    zks.getZKDatabase().getDataTreeLastProcessedZxid(), 0), null, "response");
return;
Stat stat = zks.getZKDatabase().statNode(path, existsRequest
    .getWatch() ? cnxn : null);
rsp = new ExistsResponse(stat);
DataNode n = zks.getZKDatabase().getNode(getDataRequest.getPath());
if (n == null) {
  throw new KeeperException.NoNodeException();
PrepRequestProcessor.checkACL(zks, zks.getZKDatabase().convertLong(aclL),
    ZooDefs.Perms.READ,
    request.authInfo);
Stat stat = new Stat();
byte b[] = zks.getZKDatabase().getData(getDataRequest.getPath(), stat,
    getDataRequest.getWatch() ? cnxn : null);
rsp = new GetDataResponse(b, stat);
zks.getZKDatabase().setWatches(relativeZxid, 
    setWatches.getDataWatches(), 
    setWatches.getExistWatches(),

代码示例来源:origin: apache/zookeeper

return;
ZKDatabase zkdb = zkServer.getZKDatabase();
ServerStats stats = zkServer.serverStats();
print("znode_count", zkdb.getNodeCount());
print("watch_count", zkdb.getDataTree().getWatchCount());
print("ephemerals_count", zkdb.getDataTree().getEphemeralsCount());
print("approximate_data_size", zkdb.getDataTree().cachedApproximateDataSize());

代码示例来源:origin: com.github.jiayuhan-it/hadoop-common

/**
 * Expire the ZK session of the given service. This requires
 * (and asserts) that the given service be the current active.
 * @throws NoNodeException if no service holds the lock
 */
public void expireActiveLockHolder(int idx)
  throws NoNodeException {
 Stat stat = new Stat();
 byte[] data = zks.getZKDatabase().getData(
   DummyZKFC.LOCK_ZNODE, stat, null);
 
 assertArrayEquals(Ints.toByteArray(svcs[idx].index), data);
 long session = stat.getEphemeralOwner();
 LOG.info("Expiring svc " + idx + "'s zookeeper session " + session);
 zks.closeSession(session);
}

代码示例来源:origin: apache/zookeeper

private void verifyState(QuorumUtil qu, int index, Leader leader) {
  LOG.info("Verifying state");
  assertTrue("Not following", qu.getPeer(index).peer.follower != null);
  long epochF = (qu.getPeer(index).peer.getActiveServer().getZxid() >> 32L);
  long epochL = (leader.getEpoch() >> 32L);
  assertTrue("Zxid: " + qu.getPeer(index).peer.getActiveServer().getZKDatabase().getDataTreeLastProcessedZxid() +
      "Current epoch: " + epochF, epochF == epochL);
  int leaderIndex = (index == 1) ? 2 : 1;
  Collection<Long> sessionsRestarted = qu.getPeer(index).peer.getActiveServer().getZKDatabase().getSessions();
  Collection<Long> sessionsNotRestarted = qu.getPeer(leaderIndex).peer.getActiveServer().getZKDatabase().getSessions();
    LOG.info("Validating ephemeral for session id 0x{}", Long.toHexString(l));
    assertTrue("Should have same set of sessions in both servers, did not expect: " + l, sessionsNotRestarted.contains(l));
    Set<String> ephemerals = restarted.getEphemerals(l);
    Set<String> cleanEphemerals = clean.getEphemerals(l);
    for(String o : cleanEphemerals) {
      if(!ephemerals.contains(o)) {
        LOG.info("Restarted follower doesn't contain ephemeral {} zxid 0x{}",
            o, Long.toHexString(clean.getDataTree().getNode(o).stat.getMzxid()));
      if(!cleanEphemerals.contains(o)) {
        LOG.info("Restarted follower has extra ephemeral {} zxid 0x{}",
            o, Long.toHexString(restarted.getDataTree().getNode(o).stat.getMzxid()));
    Set<String> leadEphemerals = lead.getEphemerals(l);
    for(String o : leadEphemerals) {
      if(!cleanEphemerals.contains(o)) {
        LOG.info("Follower doesn't contain ephemeral from leader {} zxid 0x{}",
            o, Long.toHexString(lead.getDataTree().getNode(o).stat.getMzxid()));

代码示例来源:origin: apache/zookeeper

ZKDatabase zkDb = new ZKDatabase(new FileTxnSnapLog(tmpDir, tmpDir));
final long foo1Zxid = ZxidUtils.makeZxid(1, 1);
final long foo2Zxid = ZxidUtils.makeZxid(1, 2);
zkDb.processTxn(new TxnHeader(13, 1313, foo1Zxid, 33,
    ZooDefs.OpCode.create), new CreateTxn("/foo1",
    "data1".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE,
    false, 1));
zkDb.processTxn(new TxnHeader(13, 1313, foo2Zxid, 33,
    ZooDefs.OpCode.create), new CreateTxn("/foo2",
    "data1".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE,
Stat stat = new Stat();
Assert.assertEquals("data1",
    new String(zkDb.getData("/foo1", stat, null)));
Assert.assertEquals("data1",
    new String(zkDb.getData("/foo2", stat, null)));
qp.setZxid(zkDb.getDataTreeLastProcessedZxid());
oa.writeRecord(qp, null);
zkDb.serializeSnapshot(oa);
oa.writeString("BenWasHere", null);
qp.setType(Leader.NEWLEADER);
ZKDatabase zkDb2 = new ZKDatabase(new FileTxnSnapLog(
    logDir, snapDir));
long lastZxid = zkDb2.loadDataBase();
Assert.assertEquals("data1",
    new String(zkDb2.getData("/foo1", stat, null)));
Assert.assertEquals(foo2Zxid, lastZxid);

代码示例来源:origin: apache/zookeeper

@Test
public void testTruncationStreamReset() throws Exception {
  File tmpdir = ClientBase.createTmpDir();
  FileTxnSnapLog snaplog = new FileTxnSnapLog(tmpdir, tmpdir);
  ZKDatabase zkdb = new ZKDatabase(snaplog);
  // make sure to snapshot, so that we have something there when
  // truncateLog reloads the db
  snaplog.save(zkdb.getDataTree(), zkdb.getSessionWithTimeOuts(), false);
  for (int i = 1; i <= 100; i++) {
    append(zkdb, i);
  }
  zkdb.truncateLog(1);
  append(zkdb, 200);
  zkdb.close();
  // verify that the truncation and subsequent append were processed
  // correctly
  FileTxnLog txnlog = new FileTxnLog(new File(tmpdir, "version-2"));
  TxnIterator iter = txnlog.read(1);
  TxnHeader hdr = iter.getHeader();
  Record txn = iter.getTxn();
  Assert.assertEquals(1, hdr.getZxid());
  Assert.assertTrue(txn instanceof SetDataTxn);
  iter.next();
  hdr = iter.getHeader();
  txn = iter.getTxn();
  Assert.assertEquals(200, hdr.getZxid());
  Assert.assertTrue(txn instanceof SetDataTxn);
  iter.close();
  ClientBase.recursiveDelete(tmpdir);
}

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com