com.caucho.server.distcache
Class MnodeStore

java.lang.Object
  extended by com.caucho.server.distcache.MnodeStore
All Implemented Interfaces:
AlarmListener, java.util.EventListener
Direct Known Subclasses:
JdbcMnodeStore

public class MnodeStore
extends java.lang.Object
implements AlarmListener

Manages backing for the cache map.


Constructor Summary
MnodeStore(javax.sql.DataSource dataSource, java.lang.String tableName, java.lang.String serverName)
           
 
Method Summary
 void close()
           
 void destroy()
           
 long getCount()
           
 javax.sql.DataSource getDataSource()
          Returns the data source.
 long getStartupLastUpdateTime()
          Returns the max update time detected on startup.
 long getStartupLastUpdateTime(HashKey cacheKey)
          Returns the max update time detected on startup.
 java.lang.String getTableName()
          Returns the data source.
 java.util.ArrayList<CacheData> getUpdates(HashKey cacheKey, long updateTime, int offset)
          Returns the maximum update time on startup
 java.util.ArrayList<CacheData> getUpdates(long updateTime, int offset)
          Returns the maximum update time on startup
 void handleAlarm(Alarm alarm)
          Handles a callback from an alarm.
protected  void init()
           
protected  void initDatabase()
          Create the database, initializing if necessary.
 boolean insert(HashKey id, MnodeValue mnodeUpdate)
          Stores the data, returning true on success
 MnodeEntry load(HashKey id)
          Reads the object from the data store.
 void removeExpiredData()
          Clears the expired data
 java.lang.String toString()
           
 boolean updateSave(byte[] key, MnodeValue mnodeUpdate)
          Stores the data, returning true on success
 boolean updateUpdateTime(HashKey id, long itemVersion, long accessTimeout, long updateTime)
          Updates the update time, returning true on success
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

MnodeStore

public MnodeStore(javax.sql.DataSource dataSource,
                  java.lang.String tableName,
                  java.lang.String serverName)
           throws java.lang.Exception
Throws:
java.lang.Exception
Method Detail

getDataSource

public javax.sql.DataSource getDataSource()
Returns the data source.


getTableName

public java.lang.String getTableName()
Returns the data source.


getStartupLastUpdateTime

public long getStartupLastUpdateTime()
Returns the max update time detected on startup.


getStartupLastUpdateTime

public long getStartupLastUpdateTime(HashKey cacheKey)
Returns the max update time detected on startup.


init

protected void init()
             throws java.lang.Exception
Throws:
java.lang.Exception

initDatabase

protected void initDatabase()
                     throws java.lang.Exception
Create the database, initializing if necessary.

Throws:
java.lang.Exception

close

public void close()

getUpdates

public java.util.ArrayList<CacheData> getUpdates(long updateTime,
                                                 int offset)
Returns the maximum update time on startup


getUpdates

public java.util.ArrayList<CacheData> getUpdates(HashKey cacheKey,
                                                 long updateTime,
                                                 int offset)
Returns the maximum update time on startup


load

public MnodeEntry load(HashKey id)
Reads the object from the data store.

Parameters:
id - the hash identifier for the data
Returns:
true on successful load

insert

public boolean insert(HashKey id,
                      MnodeValue mnodeUpdate)
Stores the data, returning true on success

Parameters:
id - the key hash
value - the value hash
idleTimeout - the item's timeout

updateSave

public boolean updateSave(byte[] key,
                          MnodeValue mnodeUpdate)
Stores the data, returning true on success

Parameters:
id - the key hash
value - the value hash
idleTimeout - the item's timeout

updateUpdateTime

public boolean updateUpdateTime(HashKey id,
                                long itemVersion,
                                long accessTimeout,
                                long updateTime)
Updates the update time, returning true on success

Parameters:
id - the key hash
itemVersion - the value version
idleTimeout - the item's timeout
updateTime - the item's timeout

removeExpiredData

public void removeExpiredData()
Clears the expired data


getCount

public long getCount()

handleAlarm

public void handleAlarm(Alarm alarm)
Description copied from interface: AlarmListener
Handles a callback from an alarm.

Specified by:
handleAlarm in interface AlarmListener

destroy

public void destroy()

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object