本文整理了Java中org.apache.zookeeper.server.ZooKeeperServer.getZKDatabase()
方法的一些代码示例,展示了ZooKeeperServer.getZKDatabase()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ZooKeeperServer.getZKDatabase()
方法的具体详情如下:
包路径:org.apache.zookeeper.server.ZooKeeperServer
类名称:ZooKeeperServer
方法名:getZKDatabase
[英]get the zookeeper database for this server
[中]获取此服务器的zookeeper数据库
代码示例来源:origin: apache/zookeeper
public String[] getEphemeralNodes() {
if(zk.getZKDatabase() !=null){
String[] res = zk.getZKDatabase().getEphemerals(sessionId)
.toArray(new String[0]);
Arrays.sort(res);
return res;
}
return null;
}
代码示例来源: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
private String getParentPathAndValidate(String path)
throws BadArgumentsException {
int lastSlash = path.lastIndexOf('/');
if (lastSlash == -1 || path.indexOf('\0') != -1
|| zks.getZKDatabase().isSpecialPath(path)) {
throw new BadArgumentsException(path);
}
return path.substring(0, lastSlash);
}
代码示例来源:origin: apache/zookeeper
private void flush(LinkedList<Request> toFlush)
throws IOException, RequestProcessorException
{
if (toFlush.isEmpty())
return;
zks.getZKDatabase().commit();
while (!toFlush.isEmpty()) {
Request i = toFlush.remove();
if (nextProcessor != null) {
nextProcessor.processRequest(i);
}
}
if (nextProcessor != null && nextProcessor instanceof Flushable) {
((Flushable)nextProcessor).flush();
}
}
代码示例来源: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
@Override
public CommandResponse run(ZooKeeperServer zkServer, Map<String, String> kwargs) {
DataTree dt = zkServer.getZKDatabase().getDataTree();
CommandResponse response = initializeResponse();
response.put("path_to_session_ids", dt.getWatchesByPath().toMap());
return response;
}
}
代码示例来源:origin: apache/zookeeper
private ContainerManager newContainerManager(final AtomicLong fakeElapsed) {
return new ContainerManager(serverFactory.getZooKeeperServer()
.getZKDatabase(), serverFactory.getZooKeeperServer().firstProcessor, 1, 100) {
@Override
protected long getElapsed(DataNode node) {
return fakeElapsed.get();
}
};
}
}
代码示例来源:origin: apache/zookeeper
private ContainerManager newContainerManager(final AtomicLong fakeElapsed) {
return new ContainerManager(serverFactory.getZooKeeperServer()
.getZKDatabase(), serverFactory.getZooKeeperServer().firstProcessor, 1, 100) {
@Override
protected long getElapsed(DataNode node) {
return fakeElapsed.get();
}
};
}
}
代码示例来源:origin: apache/zookeeper
@Override
public CommandResponse run(ZooKeeperServer zkServer, Map<String, String> kwargs) {
DataTree dt = zkServer.getZKDatabase().getDataTree();
CommandResponse response = initializeResponse();
response.putAll(dt.getWatchesSummary().toMap());
return response;
}
}
代码示例来源:origin: apache/zookeeper
@Override
public CommandResponse run(ZooKeeperServer zkServer, Map<String, String> kwargs) {
DataTree dt = zkServer.getZKDatabase().getDataTree();
CommandResponse response = initializeResponse();
response.put("session_id_to_watched_paths", dt.getWatches().toMap());
return response;
}
}
代码示例来源: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
@Test(timeout = 30000)
public void testSimpleDeletion()
throws KeeperException, InterruptedException {
zk.create("/foo", new byte[0], ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.CONTAINER);
zk.create("/foo/bar", new byte[0], ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
zk.delete("/foo/bar", -1); // should cause "/foo" to get deleted when checkContainers() is called
ContainerManager containerManager = new ContainerManager(serverFactory.getZooKeeperServer()
.getZKDatabase(), serverFactory.getZooKeeperServer().firstProcessor, 1, 100);
containerManager.checkContainers();
Thread.sleep(1000);
Assert.assertNull("Container should have been deleted", zk.exists("/foo", false));
}
代码示例来源:origin: apache/zookeeper
@Test(timeout = 30000)
public void testFalseEmpty()
throws KeeperException, InterruptedException {
zk.create("/foo", new byte[0], ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.CONTAINER);
zk.create("/foo/bar", new byte[0], ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
ContainerManager containerManager = new ContainerManager(serverFactory.getZooKeeperServer()
.getZKDatabase(), serverFactory.getZooKeeperServer().firstProcessor, 1, 100) {
@Override
protected Collection<String> getCandidates() {
return Collections.singletonList("/foo");
}
};
containerManager.checkContainers();
Thread.sleep(1000);
Assert.assertNotNull("Container should have not been deleted", zk.exists("/foo", false));
}
代码示例来源:origin: apache/zookeeper
/**
* ZOOKEEPER-2052:
* This test checks that if a multi operation aborted, and during the multi there is side effect
* that changed outstandingChangesForPath, after aborted the side effect should be removed and
* everything should be restored correctly.
*/
@Test
public void testMultiRollbackNoLastChange() throws Exception {
zks.getZKDatabase().dataTree.createNode("/foo", new byte[0], Ids.OPEN_ACL_UNSAFE, 0, 0, 0, 0);
zks.getZKDatabase().dataTree.createNode("/foo/bar", new byte[0], Ids.OPEN_ACL_UNSAFE, 0, 0, 0, 0);
Assert.assertNull(zks.outstandingChangesForPath.get("/foo"));
// multi record:
// set "/foo" => succeed, leave a outstanding change
// delete "/foo" => fail, roll back change
process(Arrays.asList(
Op.setData("/foo", new byte[0], -1),
Op.delete("/foo", -1)));
// aborting multi shouldn't leave any record.
Assert.assertNull(zks.outstandingChangesForPath.get("/foo"));
}
代码示例来源:origin: apache/zookeeper
@Test(timeout = 30000)
public void testCascadingDeletion()
throws KeeperException, InterruptedException {
zk.create("/foo", new byte[0], ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.CONTAINER);
zk.create("/foo/bar", new byte[0], ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.CONTAINER);
zk.create("/foo/bar/one", new byte[0], ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
zk.delete("/foo/bar/one", -1); // should cause "/foo/bar" and "/foo" to get deleted when checkContainers() is called
ContainerManager containerManager = new ContainerManager(serverFactory.getZooKeeperServer()
.getZKDatabase(), serverFactory.getZooKeeperServer().firstProcessor, 1, 100);
containerManager.checkContainers();
Thread.sleep(1000);
containerManager
.checkContainers();
Thread.sleep(1000);
Assert.assertNull("Container should have been deleted", zk.exists("/foo/bar", false));
Assert.assertNull("Container should have been deleted", zk.exists("/foo", false));
}
代码示例来源:origin: apache/zookeeper
@Test(timeout = 30000)
public void testSimpleDeletionAsync()
throws KeeperException, InterruptedException {
final CountDownLatch latch = new CountDownLatch(1);
AsyncCallback.Create2Callback cb = new AsyncCallback.Create2Callback() {
@Override
public void processResult(int rc, String path, Object ctx, String name, Stat stat) {
Assert.assertEquals(ctx, "context");
latch.countDown();
}
};
zk.create("/foo", new byte[0], ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.CONTAINER, cb, "context");
Assert.assertTrue(latch.await(5, TimeUnit.SECONDS));
zk.create("/foo/bar", new byte[0], ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
zk.delete("/foo/bar", -1); // should cause "/foo" to get deleted when checkContainers() is called
ContainerManager containerManager = new ContainerManager(serverFactory.getZooKeeperServer()
.getZKDatabase(), serverFactory.getZooKeeperServer().firstProcessor, 1, 100);
containerManager.checkContainers();
Thread.sleep(1000);
Assert.assertNull("Container should have been deleted", zk.exists("/foo", false));
}
代码示例来源:origin: apache/zookeeper
@Test(timeout = 30000)
public void testMultiWithContainerSimple()
throws KeeperException, InterruptedException {
Op createContainer = Op.create("/foo", new byte[0],
ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.CONTAINER);
zk.multi(Collections.singletonList(createContainer));
DataTree dataTree = serverFactory.getZooKeeperServer().getZKDatabase().getDataTree();
Assert.assertEquals(dataTree.getContainers().size(), 1);
}
代码示例来源:origin: apache/zookeeper
/**
* Checks if a session is registered with the server as a watcher.
*
* @param long sessionId the session ID to check
* @param path the path to check for watchers
* @param type the type of watcher
* @return true if the client session is a watcher on path for the type
*/
private boolean isServerSessionWatcher(long sessionId, String path,
WatcherType type) {
Set<ServerCnxn> cnxns = new HashSet<>();
CollectionUtils.addAll(cnxns, serverFactory.getConnections().iterator());
for (ServerCnxn cnxn : cnxns) {
if (cnxn.getSessionId() == sessionId) {
return getServer(serverFactory).getZKDatabase().getDataTree()
.containsWatcher(path, type, cnxn);
}
}
return false;
}
}
代码示例来源:origin: apache/zookeeper
@Override
public CommandResponse run(ZooKeeperServer zkServer, Map<String, String> kwargs) {
CommandResponse response = initializeResponse();
LOG.info("running stat");
response.put("version", Version.getFullVersion());
response.put("read_only", zkServer instanceof ReadOnlyZooKeeperServer);
response.put("server_stats", zkServer.serverStats());
response.put("client_response", zkServer.serverStats().getClientResponseStats());
if (zkServer instanceof LeaderZooKeeperServer) {
Leader leader = ((LeaderZooKeeperServer)zkServer).getLeader();
response.put("proposal_stats", leader.getProposalStats());
}
response.put("node_count", zkServer.getZKDatabase().getNodeCount());
return response;
}
}
代码示例来源:origin: apache/zookeeper
@Test
public void test353TTL()
throws KeeperException, InterruptedException {
DataTree dataTree = serverFactory.zkServer.getZKDatabase().dataTree;
long ephemeralOwner = EphemeralTypeEmulate353.ttlToEphemeralOwner(100);
dataTree.createNode("/foo", new byte[0], ZooDefs.Ids.OPEN_ACL_UNSAFE, ephemeralOwner,
dataTree.getNode("/").stat.getCversion()+1, 1, 1);
final AtomicLong fakeElapsed = new AtomicLong(0);
ContainerManager containerManager = newContainerManager(fakeElapsed);
containerManager.checkContainers();
Assert.assertNotNull("Ttl node should not have been deleted yet", zk.exists("/foo", false));
fakeElapsed.set(1000);
containerManager.checkContainers();
Assert.assertNull("Ttl node should have been deleted", zk.exists("/foo", false));
}
内容来源于网络,如有侵权,请联系作者删除!