/** * maintains a list of last <i>committedLog</i> * or so committed requests. This is used for * fast follower synchronization. * @param request committed request */ public void addCommittedProposal(Request request) { WriteLock wl = logLock.writeLock(); try { wl.lock(); if (committedLog.size() > commitLogCount) { committedLog.removeFirst(); minCommittedLog = committedLog.getFirst().packet.getZxid(); } if (committedLog.size() == 0) { minCommittedLog = request.zxid; maxCommittedLog = request.zxid; } ByteArrayOutputStream baos = new ByteArrayOutputStream(); BinaryOutputArchive boa = BinaryOutputArchive.getArchive(baos); try { request.hdr.serialize(boa, "hdr"); if (request.txn != null) { request.txn.serialize(boa, "txn"); } baos.close(); } catch (IOException e) { LOG.error("This really should be impossible", e); } QuorumPacket pp = new QuorumPacket(Leader.PROPOSAL, request.zxid, baos.toByteArray(), null); Proposal p = new Proposal(); p.packet = pp; p.request = request; committedLog.add(p); maxCommittedLog = p.packet.getZxid(); } finally { wl.unlock(); } }
/** * Proposal returned by this iterator has request part set to null, since * it is not used for follower sync-up. */ @Override public Proposal next() { ByteArrayOutputStream baos = new ByteArrayOutputStream(); BinaryOutputArchive boa = BinaryOutputArchive.getArchive(baos); Proposal p = new Proposal(); try { TxnHeader hdr = itr.getHeader(); Record txn = itr.getTxn(); hdr.serialize(boa, "hdr"); if (txn != null) { txn.serialize(boa, "txn"); } baos.close(); QuorumPacket pp = new QuorumPacket(Leader.PROPOSAL, itr.getHeader() .getZxid(), baos.toByteArray(), null); p.packet = pp; p.request = null; // This is the only place that can throw IO exception hasNext = itr.next(); } catch (IOException e) { LOG.error("Unable to read txnlog from disk", e); hasNext = false; } return p; }
/** * maintains a list of last <i>committedLog</i> * or so committed requests. This is used for * fast follower synchronization. * @param request committed request */ public void addCommittedProposal(Request request) { WriteLock wl = logLock.writeLock(); try { wl.lock(); if (committedLog.size() > commitLogCount) { committedLog.removeFirst(); minCommittedLog = committedLog.getFirst().packet.getZxid(); } if (committedLog.isEmpty()) { minCommittedLog = request.zxid; maxCommittedLog = request.zxid; } ByteArrayOutputStream baos = new ByteArrayOutputStream(); BinaryOutputArchive boa = BinaryOutputArchive.getArchive(baos); try { request.getHdr().serialize(boa, "hdr"); if (request.getTxn() != null) { request.getTxn().serialize(boa, "txn"); } baos.close(); } catch (IOException e) { LOG.error("This really should be impossible", e); } QuorumPacket pp = new QuorumPacket(Leader.PROPOSAL, request.zxid, baos.toByteArray(), null); Proposal p = new Proposal(); p.packet = pp; p.request = request; committedLog.add(p); maxCommittedLog = p.packet.getZxid(); } finally { wl.unlock(); } }
public LeaderBean(Leader leader, ZooKeeperServer zks) { super(zks); this.leader = leader; }
@Override public void commandRun() { if(zkServer == null) { pw.println(ZK_NOT_SERVING); return; } ZKDatabase zkdb = zkServer.getZKDatabase(); ServerStats stats = zkServer.serverStats(); print("version", Version.getFullVersion()); print("avg_latency", stats.getAvgLatency()); print("max_latency", stats.getMaxLatency()); print("min_latency", stats.getMinLatency()); print("packets_received", stats.getPacketsReceived()); print("packets_sent", stats.getPacketsSent()); print("num_alive_connections", stats.getNumAliveClientConnections()); print("outstanding_requests", stats.getOutstandingRequests()); print("server_state", stats.getServerState()); print("znode_count", zkdb.getNodeCount()); print("watch_count", zkdb.getDataTree().getWatchCount()); print("ephemerals_count", zkdb.getDataTree().getEphemeralsCount()); print("approximate_data_size", zkdb.getDataTree().approximateDataSize()); OSMXBean osMbean = new OSMXBean(); if (osMbean != null && osMbean.getUnix() == true) { print("open_file_descriptor_count", osMbean.getOpenFileDescriptorCount()); print("max_file_descriptor_count", osMbean.getMaxFileDescriptorCount()); } if(stats.getServerState().equals("leader")) { Leader leader = ((LeaderZooKeeperServer)zkServer).getLeader(); print("followers", leader.getLearners().size()); print("synced_followers", leader.getForwardingFollowers().size()); print("pending_syncs", leader.getNumPendingSyncs()); } }
@Override public CommandResponse run(ZooKeeperServer zkServer, Map<String, String> kwargs) { ZKDatabase zkdb = zkServer.getZKDatabase(); ServerStats stats = zkServer.serverStats(); CommandResponse response = initializeResponse(); response.put("version", Version.getFullVersion()); response.put("avg_latency", stats.getAvgLatency()); response.put("max_latency", stats.getMaxLatency()); response.put("min_latency", stats.getMinLatency()); response.put("packets_received", stats.getPacketsReceived()); response.put("packets_sent", stats.getPacketsSent()); response.put("num_alive_connections", stats.getNumAliveClientConnections()); response.put("outstanding_requests", stats.getOutstandingRequests()); response.put("server_state", stats.getServerState()); response.put("znode_count", zkdb.getNodeCount()); response.put("watch_count", zkdb.getDataTree().getWatchCount()); response.put("ephemerals_count", zkdb.getDataTree().getEphemeralsCount()); response.put("approximate_data_size", zkdb.getDataTree().approximateDataSize()); OSMXBean osMbean = new OSMXBean(); response.put("open_file_descriptor_count", osMbean.getOpenFileDescriptorCount()); response.put("max_file_descriptor_count", osMbean.getMaxFileDescriptorCount()); if (zkServer instanceof LeaderZooKeeperServer) { Leader leader = ((LeaderZooKeeperServer) zkServer).getLeader(); response.put("followers", leader.getLearners().size()); response.put("synced_followers", leader.getForwardingFollowers().size()); response.put("pending_syncs", leader.getNumPendingSyncs()); } return response; }
@Override public void commandRun() { if (!isZKServerRunning()) { pw.println(ZK_NOT_SERVING); return; } ZKDatabase zkdb = zkServer.getZKDatabase(); ServerStats stats = zkServer.serverStats(); print("version", Version.getFullVersion()); print("avg_latency", stats.getAvgLatency()); print("max_latency", stats.getMaxLatency()); print("min_latency", stats.getMinLatency()); print("packets_received", stats.getPacketsReceived()); print("packets_sent", stats.getPacketsSent()); print("num_alive_connections", stats.getNumAliveClientConnections()); print("outstanding_requests", stats.getOutstandingRequests()); print("server_state", stats.getServerState()); print("znode_count", zkdb.getNodeCount()); print("watch_count", zkdb.getDataTree().getWatchCount()); print("ephemerals_count", zkdb.getDataTree().getEphemeralsCount()); print("approximate_data_size", zkdb.getDataTree().approximateDataSize()); OSMXBean osMbean = new OSMXBean(); if (osMbean != null && osMbean.getUnix() == true) { print("open_file_descriptor_count", osMbean.getOpenFileDescriptorCount()); print("max_file_descriptor_count", osMbean.getMaxFileDescriptorCount()); } if (stats.getServerState().equals("leader")) { Leader leader = ((LeaderZooKeeperServer)zkServer).getLeader(); print("followers", leader.getLearners().size()); print("synced_followers", leader.getForwardingFollowers().size()); print("pending_syncs", leader.getNumPendingSyncs()); } }
@Override public void commandRun() { if(!isZKServerRunning()) { pw.println(ZK_NOT_SERVING); return; } ZKDatabase zkdb = zkServer.getZKDatabase(); ServerStats stats = zkServer.serverStats(); print("version", Version.getFullVersion()); print("avg_latency", stats.getAvgLatency()); print("max_latency", stats.getMaxLatency()); print("min_latency", stats.getMinLatency()); print("packets_received", stats.getPacketsReceived()); print("packets_sent", stats.getPacketsSent()); print("num_alive_connections", stats.getNumAliveClientConnections()); print("outstanding_requests", stats.getOutstandingRequests()); print("server_state", stats.getServerState()); print("znode_count", zkdb.getNodeCount()); print("watch_count", zkdb.getDataTree().getWatchCount()); print("ephemerals_count", zkdb.getDataTree().getEphemeralsCount()); print("approximate_data_size", zkdb.getDataTree().approximateDataSize()); OSMXBean osMbean = new OSMXBean(); if (osMbean != null && osMbean.getUnix() == true) { print("open_file_descriptor_count", osMbean.getOpenFileDescriptorCount()); print("max_file_descriptor_count", osMbean.getMaxFileDescriptorCount()); } if(stats.getServerState().equals("leader")) { Leader leader = ((LeaderZooKeeperServer)zkServer).getLeader(); print("followers", leader.getLearners().size()); print("synced_followers", leader.getForwardingFollowers().size()); print("pending_syncs", leader.getNumPendingSyncs()); } }
@Override public void commandRun() { if(zkServer == null) { pw.println(ZK_NOT_SERVING); return; } ZKDatabase zkdb = zkServer.getZKDatabase(); ServerStats stats = zkServer.serverStats(); print("version", Version.getFullVersion()); print("avg_latency", stats.getAvgLatency()); print("max_latency", stats.getMaxLatency()); print("min_latency", stats.getMinLatency()); print("packets_received", stats.getPacketsReceived()); print("packets_sent", stats.getPacketsSent()); print("num_alive_connections", stats.getNumAliveClientConnections()); print("outstanding_requests", stats.getOutstandingRequests()); print("server_state", stats.getServerState()); print("znode_count", zkdb.getNodeCount()); print("watch_count", zkdb.getDataTree().getWatchCount()); print("ephemerals_count", zkdb.getDataTree().getEphemeralsCount()); print("approximate_data_size", zkdb.getDataTree().approximateDataSize()); OperatingSystemMXBean osMbean = ManagementFactory.getOperatingSystemMXBean(); if(osMbean != null && osMbean instanceof UnixOperatingSystemMXBean) { UnixOperatingSystemMXBean unixos = (UnixOperatingSystemMXBean)osMbean; print("open_file_descriptor_count", unixos.getOpenFileDescriptorCount()); print("max_file_descriptor_count", unixos.getMaxFileDescriptorCount()); } if(stats.getServerState().equals("leader")) { Leader leader = ((LeaderZooKeeperServer)zkServer).getLeader(); print("followers", leader.getLearners().size()); print("synced_followers", leader.getForwardingFollowers().size()); print("pending_syncs", leader.getNumPendingSyncs()); } }
@Override public void commandRun() { if(zkServer == null) { pw.println(ZK_NOT_SERVING); return; } ZKDatabase zkdb = zkServer.getZKDatabase(); ServerStats stats = zkServer.serverStats(); print("version", Version.getFullVersion()); print("avg_latency", stats.getAvgLatency()); print("max_latency", stats.getMaxLatency()); print("min_latency", stats.getMinLatency()); print("packets_received", stats.getPacketsReceived()); print("packets_sent", stats.getPacketsSent()); print("outstanding_requests", stats.getOutstandingRequests()); print("server_state", stats.getServerState()); print("znode_count", zkdb.getNodeCount()); print("watch_count", zkdb.getDataTree().getWatchCount()); print("ephemerals_count", zkdb.getDataTree().getEphemeralsCount()); print("approximate_data_size", zkdb.getDataTree().approximateDataSize()); OperatingSystemMXBean osMbean = ManagementFactory.getOperatingSystemMXBean(); if(osMbean != null && osMbean instanceof UnixOperatingSystemMXBean) { UnixOperatingSystemMXBean unixos = (UnixOperatingSystemMXBean)osMbean; print("open_file_descriptor_count", unixos.getOpenFileDescriptorCount()); print("max_file_descriptor_count", unixos.getMaxFileDescriptorCount()); } if(stats.getServerState() == "leader") { Leader leader = ((LeaderZooKeeperServer)zkServer).getLeader(); print("followers", leader.learners.size()); print("synced_followers", leader.forwardingFollowers.size()); print("pending_syncs", leader.pendingSyncs.size()); } }