for (Long session : zkDb.getSessions()) { if (zkDb.getSessionWithTimeOuts().get(session) == null) { deadSessions.add(session);
for (Long session : zkDb.getSessions()) { if (zkDb.getSessionWithTimeOuts().get(session) == null) { deadSessions.add(session);
"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();
zkDb2.loadDataBase(); LOG.info("zkdb2 sessions:" + zkDb2.getSessions()); LOG.info("zkdb2 with timeouts:" + zkDb2.getSessionWithTimeOuts()); Assert.assertNotNull(zkDb2.getSessionWithTimeOuts().get(4L));
/** * Restore sessions and data */ public void loadData() throws IOException, InterruptedException { zkDb.loadDataBase(); setZxid(zkDb.loadDataBase()); // Clean up dead sessions LinkedList<Long> deadSessions = new LinkedList<Long>(); for (long session : zkDb.getSessions()) { sessionsWithTimeouts = zkDb.getSessionWithTimeOuts(); if (sessionsWithTimeouts.get(session) == null) { deadSessions.add(session); } } zkDb.setDataTreeInit(true); for (long session : deadSessions) { // XXX: Is lastProcessedZxid really the best thing to use? killSession(session, zkDb.getDataTreeLastProcessedZxid()); } // Make a clean snapshot takeSnapshot(); }