Search in sources :

Example 6 with Leader

use of org.apache.zookeeper.server.quorum.Leader in project zookeeper by apache.

the class StatCommand method commandRun.

@Override
public void commandRun() {
    if (!isZKServerRunning()) {
        pw.println(ZK_NOT_SERVING);
    } else {
        pw.print("Zookeeper version: ");
        pw.println(Version.getFullVersion());
        if (zkServer instanceof ReadOnlyZooKeeperServer) {
            pw.println("READ-ONLY mode; serving only read-only clients");
        }
        if (len == FourLetterCommands.statCmd) {
            LOG.info("Stat command output");
            pw.println("Clients:");
            for (ServerCnxn c : factory.getConnections()) {
                c.dumpConnectionInfo(pw, true);
                pw.println();
            }
            pw.println();
        }
        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();
            BufferStats proposalStats = leader.getProposalStats();
            pw.printf("Proposal sizes last/min/max: %s%n", proposalStats.toString());
        }
    }
}
Also used : ServerCnxn(org.apache.zookeeper.server.ServerCnxn) Leader(org.apache.zookeeper.server.quorum.Leader) ServerStats(org.apache.zookeeper.server.ServerStats) BufferStats(org.apache.zookeeper.server.quorum.BufferStats) ReadOnlyZooKeeperServer(org.apache.zookeeper.server.quorum.ReadOnlyZooKeeperServer) LeaderZooKeeperServer(org.apache.zookeeper.server.quorum.LeaderZooKeeperServer)

Example 7 with Leader

use of org.apache.zookeeper.server.quorum.Leader in project zookeeper by apache.

the class PrepRequestProcessorTest method testReconfigWithAnotherOutstandingChange.

@Test
public void testReconfigWithAnotherOutstandingChange() throws Exception {
    QuorumPeerConfig.setReconfigEnabled(true);
    QuorumPeerConfig.setStandaloneEnabled(false);
    QuorumPeer qp = new QuorumPeer();
    QuorumVerifier quorumVerifierMock = mock(QuorumVerifier.class);
    when(quorumVerifierMock.getAllMembers()).thenReturn(LeaderBeanTest.getMockedPeerViews(qp.getId()));
    qp.setQuorumVerifier(quorumVerifierMock, false);
    FileTxnSnapLog snapLog = new FileTxnSnapLog(tmpDir, tmpDir);
    LeaderZooKeeperServer lzks = new LeaderZooKeeperServer(snapLog, qp, new ZKDatabase(snapLog));
    qp.leader = new Leader(qp, lzks);
    lzks.sessionTracker = new MySessionTracker();
    ZooKeeperServer.setDigestEnabled(true);
    processor = new PrepRequestProcessor(lzks, new MyRequestProcessor());
    Record record = new CreateRequest("/foo", "data".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT.toFlag());
    pLatch = new CountDownLatch(1);
    processor.pRequest(createRequest(record, OpCode.create, false));
    assertTrue(pLatch.await(5, TimeUnit.SECONDS), "request hasn't been processed in chain");
    String newMember = "server.0=localhost:" + PortAssignment.unique() + ":" + PortAssignment.unique() + ":participant";
    record = new ReconfigRequest(null, null, newMember, 0);
    pLatch = new CountDownLatch(1);
    processor.pRequest(createRequest(record, OpCode.reconfig, true));
    assertTrue(pLatch.await(5, TimeUnit.SECONDS), "request hasn't been processed in chain");
    // Verifies that there was no error.
    assertEquals(outcome.getHdr().getType(), OpCode.reconfig);
}
Also used : Leader(org.apache.zookeeper.server.quorum.Leader) CreateRequest(org.apache.zookeeper.proto.CreateRequest) CountDownLatch(java.util.concurrent.CountDownLatch) QuorumVerifier(org.apache.zookeeper.server.quorum.flexible.QuorumVerifier) FileTxnSnapLog(org.apache.zookeeper.server.persistence.FileTxnSnapLog) ReconfigRequest(org.apache.zookeeper.proto.ReconfigRequest) QuorumPeer(org.apache.zookeeper.server.quorum.QuorumPeer) Record(org.apache.jute.Record) ChangeRecord(org.apache.zookeeper.server.ZooKeeperServer.ChangeRecord) MultiOperationRecord(org.apache.zookeeper.MultiOperationRecord) LeaderZooKeeperServer(org.apache.zookeeper.server.quorum.LeaderZooKeeperServer) LeaderBeanTest(org.apache.zookeeper.server.quorum.LeaderBeanTest) Test(org.junit.jupiter.api.Test)

Example 8 with Leader

use of org.apache.zookeeper.server.quorum.Leader in project zookeeper by apache.

the class QuorumOracleMajTest method dropConnectionTest.

private void dropConnectionTest(QuorumPeer s, int leader) {
    Leader.Proposal p = new Leader.Proposal();
    p.addQuorumVerifier(s.getQuorumVerifier());
    ArrayList<LearnerHandler> fake = new ArrayList<>();
    LearnerHandler f = null;
    fake.add(f);
    s.getQuorumVerifier().updateNeedOracle(fake);
    // still have valid followers, the oracle should not take place
    assertEquals(false, s.getQuorumVerifier().getNeedOracle());
    fake.remove(0);
    s.getQuorumVerifier().updateNeedOracle(fake);
    // lose all of followers, the oracle should take place
    assertEquals(true, s.getQuorumVerifier().getNeedOracle());
    // when leader is 1, we expect false.
    // when leader is 2, we expect true.
    assertEquals(leader != 1, p.hasAllQuorums());
}
Also used : LearnerHandler(org.apache.zookeeper.server.quorum.LearnerHandler) Leader(org.apache.zookeeper.server.quorum.Leader) ArrayList(java.util.ArrayList)

Aggregations

Leader (org.apache.zookeeper.server.quorum.Leader)8 ZooKeeper (org.apache.zookeeper.ZooKeeper)4 Test (org.junit.jupiter.api.Test)4 Semaphore (java.util.concurrent.Semaphore)3 WatchedEvent (org.apache.zookeeper.WatchedEvent)3 ZKDatabase (org.apache.zookeeper.server.ZKDatabase)3 LeaderZooKeeperServer (org.apache.zookeeper.server.quorum.LeaderZooKeeperServer)3 CountdownWatcher (org.apache.zookeeper.test.ClientBase.CountdownWatcher)3 IOException (java.io.IOException)2 Collection (java.util.Collection)2 Set (java.util.Set)2 LinkedBlockingQueue (java.util.concurrent.LinkedBlockingQueue)2 TimeUnit (java.util.concurrent.TimeUnit)2 TimeoutException (java.util.concurrent.TimeoutException)2 AtomicBoolean (java.util.concurrent.atomic.AtomicBoolean)2 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)2 CreateMode (org.apache.zookeeper.CreateMode)2 KeeperException (org.apache.zookeeper.KeeperException)2 TestableZooKeeper (org.apache.zookeeper.TestableZooKeeper)2 ZKTestCase (org.apache.zookeeper.ZKTestCase)2