voldemort.server.storage
Class StorageService

java.lang.Object
  extended by voldemort.server.AbstractService
      extended by voldemort.server.storage.StorageService
All Implemented Interfaces:
VoldemortService

public class StorageService
extends AbstractService

The service responsible for managing all storage types


Constructor Summary
StorageService(StoreRepository storeRepository, MetadataStore metadata, SchedulerService scheduler, VoldemortConfig config)
           
 
Method Summary
 void forceCleanupOldData(java.lang.String storeName)
           
 void forceCleanupOldDataThrottled(java.lang.String storeName, int entryScanThrottleRate)
           
 MetadataStore getMetadataStore()
           
 SocketStoreFactory getSocketStoreFactory()
           
 StoreRepository getStoreRepository()
           
 void logStoreStats()
           
 void logStoreStats(java.lang.String storeName)
           
 void openStore(StoreDefinition storeDef)
           
 void registerEngine(StorageEngine<ByteArray,byte[],byte[]> engine, boolean isReadOnly, java.lang.String storeType)
          Register the given engine with the storage repository
 void registerNodeStores(StoreDefinition def, Cluster cluster, int localNode)
          For server side routing create NodeStore (socketstore) and pass it on to a RebootstrappingStore.
protected  void startInner()
           
protected  void stopInner()
           
 void unregisterEngine(StorageEngine<ByteArray,byte[],byte[]> engine, boolean isReadOnly, java.lang.String storeType)
          Unregister and remove the engine from the storage repository
 
Methods inherited from class voldemort.server.AbstractService
getType, isStarted, start, stop
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

StorageService

public StorageService(StoreRepository storeRepository,
                      MetadataStore metadata,
                      SchedulerService scheduler,
                      VoldemortConfig config)
Method Detail

startInner

protected void startInner()
Specified by:
startInner in class AbstractService

openStore

public void openStore(StoreDefinition storeDef)

unregisterEngine

public void unregisterEngine(StorageEngine<ByteArray,byte[],byte[]> engine,
                             boolean isReadOnly,
                             java.lang.String storeType)
Unregister and remove the engine from the storage repository

Parameters:
engine - The actual engine to remove
isReadOnly - Is this read-only?
storeType - The storage type of the store

registerEngine

public void registerEngine(StorageEngine<ByteArray,byte[],byte[]> engine,
                           boolean isReadOnly,
                           java.lang.String storeType)
Register the given engine with the storage repository

Parameters:
engine - Register the storage engine
isReadOnly - Boolean indicating if this store is read-only
storeType - The type of the store

registerNodeStores

public void registerNodeStores(StoreDefinition def,
                               Cluster cluster,
                               int localNode)
For server side routing create NodeStore (socketstore) and pass it on to a RebootstrappingStore.

The RebootstrappingStore handles invalid-metadata exceptions introduced due to changes in cluster.xml at different nodes.

Parameters:
def -
cluster -
localNode -

stopInner

protected void stopInner()
Specified by:
stopInner in class AbstractService

getMetadataStore

public MetadataStore getMetadataStore()

getStoreRepository

public StoreRepository getStoreRepository()

forceCleanupOldData

public void forceCleanupOldData(java.lang.String storeName)

forceCleanupOldDataThrottled

public void forceCleanupOldDataThrottled(java.lang.String storeName,
                                         int entryScanThrottleRate)

logStoreStats

public void logStoreStats(java.lang.String storeName)

logStoreStats

public void logStoreStats()

getSocketStoreFactory

public SocketStoreFactory getSocketStoreFactory()


Jay Kreps, Roshan Sumbaly, Alex Feinberg, Bhupesh Bansal, Lei Gao