Class UpgradeableSessionTracker
- java.lang.Object
-
- org.apache.zookeeper.server.quorum.UpgradeableSessionTracker
-
- All Implemented Interfaces:
SessionTracker
- Direct Known Subclasses:
LeaderSessionTracker
,LearnerSessionTracker
public abstract class UpgradeableSessionTracker extends java.lang.Object implements SessionTracker
A session tracker that supports upgradeable local sessions.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.zookeeper.server.SessionTracker
SessionTracker.Session, SessionTracker.SessionExpirer
-
-
Field Summary
Fields Modifier and Type Field Description protected LocalSessionTracker
localSessionTracker
-
Constructor Summary
Constructors Constructor Description UpgradeableSessionTracker()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
checkGlobalSession(long sessionId, java.lang.Object owner)
Strictly check that a given session is a global session or notvoid
createLocalSessionTracker(SessionTracker.SessionExpirer expirer, int tickTime, long id, ZooKeeperServerListener listener)
abstract boolean
isGlobalSession(long sessionId)
boolean
isLocalSession(long sessionId)
boolean
isTrackingSession(long sessionId)
void
start()
int
upgradeSession(long sessionId)
Upgrades the session to a global session.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.zookeeper.server.SessionTracker
addGlobalSession, addSession, checkSession, createSession, dumpSessions, getSessionExpiryMap, removeSession, setOwner, setSessionClosing, shutdown, touchSession
-
-
-
-
Field Detail
-
localSessionTracker
protected LocalSessionTracker localSessionTracker
-
-
Method Detail
-
start
public void start()
-
createLocalSessionTracker
public void createLocalSessionTracker(SessionTracker.SessionExpirer expirer, int tickTime, long id, ZooKeeperServerListener listener)
-
isTrackingSession
public boolean isTrackingSession(long sessionId)
- Specified by:
isTrackingSession
in interfaceSessionTracker
- Returns:
- whether or not the SessionTracker is aware of this session
-
isLocalSession
public boolean isLocalSession(long sessionId)
-
isGlobalSession
public abstract boolean isGlobalSession(long sessionId)
-
upgradeSession
public int upgradeSession(long sessionId)
Upgrades the session to a global session. This simply removes the session from the local tracker and marks it as global. It is up to the caller to actually queue up a transaction for the session.- Parameters:
sessionId
-- Returns:
- session timeout (-1 if not a local session)
-
checkGlobalSession
public void checkGlobalSession(long sessionId, java.lang.Object owner) throws KeeperException.SessionExpiredException, KeeperException.SessionMovedException
Description copied from interface:SessionTracker
Strictly check that a given session is a global session or not- Specified by:
checkGlobalSession
in interfaceSessionTracker
- Throws:
KeeperException.SessionExpiredException
KeeperException.SessionMovedException
-
-