Class RocksDBStorageEngineFactory
- java.lang.Object
-
- com.linkedin.davinci.store.StorageEngineFactory
-
- com.linkedin.davinci.store.rocksdb.RocksDBStorageEngineFactory
-
public class RocksDBStorageEngineFactory extends StorageEngineFactory
-
-
Constructor Summary
Constructors Constructor Description RocksDBStorageEngineFactory(VeniceServerConfig serverConfig)RocksDBStorageEngineFactory(VeniceServerConfig serverConfig, RocksDBMemoryStats rocksDBMemoryStats, InternalAvroSpecificSerializer<StoreVersionState> storeVersionStateSerializer, InternalAvroSpecificSerializer<PartitionState> partitionStateSerializer)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()Close the storage configurationvoidcloseStorageEngine(AbstractStorageEngine engine)Close the storage engine from the underlying storage configurationbooleanenforceMemoryLimit(java.lang.String storeNameWithoutVersionSuffix)Whether memory limiter applies or not.java.util.Optional<org.rocksdb.Statistics>getAggStatistics()org.rocksdb.EnvgetEnv()longgetMemoryLimit()longgetMemtableSize()java.util.Set<java.lang.String>getPersistedStoreNames()Retrieve all the stores persisted previouslyPersistenceTypegetPersistenceType()Return the persistence type current factory supports.org.rocksdb.RateLimitergetRateLimiter()java.lang.StringgetRocksDBPath(java.lang.String storeName, int partitionId)org.rocksdb.CachegetSharedCache(boolean isRMD)org.rocksdb.SstFileManagergetSstFileManager()org.rocksdb.SstFileManagergetSstFileManagerForMemoryLimiter()AbstractStorageEnginegetStorageEngine(VeniceStoreVersionConfig storeConfig)Get an initialized storage implementationAbstractStorageEnginegetStorageEngine(VeniceStoreVersionConfig storeConfig, boolean replicationMetadataEnabled)Replication metadata is only supported in RocksDB storage engine.org.rocksdb.WriteBufferManagergetWriteBufferManager()voidremoveStorageEngine(AbstractStorageEngine engine)Remove the storage engine from the underlying storage configurationvoidremoveStorageEngine(java.lang.String storeName)Currently, this function doesn't apply any IO throttling and if there is a side effect discovered in the read path in the future, we will need to apply some optimization here.voidremoveStorageEnginePartition(java.lang.String storeName, int partitionId)-
Methods inherited from class com.linkedin.davinci.store.StorageEngineFactory
verifyPersistenceType, verifyPersistenceType
-
-
-
-
Constructor Detail
-
RocksDBStorageEngineFactory
public RocksDBStorageEngineFactory(VeniceServerConfig serverConfig)
-
RocksDBStorageEngineFactory
public RocksDBStorageEngineFactory(VeniceServerConfig serverConfig, RocksDBMemoryStats rocksDBMemoryStats, InternalAvroSpecificSerializer<StoreVersionState> storeVersionStateSerializer, InternalAvroSpecificSerializer<PartitionState> partitionStateSerializer)
-
-
Method Detail
-
getMemoryLimit
public long getMemoryLimit()
-
getMemtableSize
public long getMemtableSize()
-
getAggStatistics
public java.util.Optional<org.rocksdb.Statistics> getAggStatistics()
-
getWriteBufferManager
public org.rocksdb.WriteBufferManager getWriteBufferManager()
-
getRateLimiter
public org.rocksdb.RateLimiter getRateLimiter()
-
getSstFileManager
public org.rocksdb.SstFileManager getSstFileManager()
-
getSstFileManagerForMemoryLimiter
public org.rocksdb.SstFileManager getSstFileManagerForMemoryLimiter()
-
enforceMemoryLimit
public boolean enforceMemoryLimit(java.lang.String storeNameWithoutVersionSuffix)
Whether memory limiter applies or not.
-
getEnv
public org.rocksdb.Env getEnv()
-
getSharedCache
public org.rocksdb.Cache getSharedCache(boolean isRMD)
-
getStorageEngine
public AbstractStorageEngine getStorageEngine(VeniceStoreVersionConfig storeConfig) throws StorageInitializationException
Description copied from class:StorageEngineFactoryGet an initialized storage implementation- Specified by:
getStorageEnginein classStorageEngineFactory- Parameters:
storeConfig- store definition- Returns:
- The storage engine
- Throws:
StorageInitializationException
-
getStorageEngine
public AbstractStorageEngine getStorageEngine(VeniceStoreVersionConfig storeConfig, boolean replicationMetadataEnabled) throws StorageInitializationException
Description copied from class:StorageEngineFactoryReplication metadata is only supported in RocksDB storage engine. For other type of the storage engine, we will throw VeniceException here.- Overrides:
getStorageEnginein classStorageEngineFactory- Throws:
StorageInitializationException
-
getPersistedStoreNames
public java.util.Set<java.lang.String> getPersistedStoreNames()
Description copied from class:StorageEngineFactoryRetrieve all the stores persisted previously- Specified by:
getPersistedStoreNamesin classStorageEngineFactory- Returns:
- All the store names
-
close
public void close()
Description copied from class:StorageEngineFactoryClose the storage configuration- Specified by:
closein classStorageEngineFactory
-
removeStorageEngine
public void removeStorageEngine(AbstractStorageEngine engine)
Description copied from class:StorageEngineFactoryRemove the storage engine from the underlying storage configuration- Specified by:
removeStorageEnginein classStorageEngineFactory- Parameters:
engine- Specifies the storage engine to be removed
-
removeStorageEngine
public void removeStorageEngine(java.lang.String storeName)
Currently, this function doesn't apply any IO throttling and if there is a side effect discovered in the read path in the future, we will need to apply some optimization here.- Specified by:
removeStorageEnginein classStorageEngineFactory
-
getRocksDBPath
public java.lang.String getRocksDBPath(java.lang.String storeName, int partitionId)
-
removeStorageEnginePartition
public void removeStorageEnginePartition(java.lang.String storeName, int partitionId)- Specified by:
removeStorageEnginePartitionin classStorageEngineFactory
-
closeStorageEngine
public void closeStorageEngine(AbstractStorageEngine engine)
Description copied from class:StorageEngineFactoryClose the storage engine from the underlying storage configuration- Specified by:
closeStorageEnginein classStorageEngineFactory- Parameters:
engine- Specifies the storage engine to be removed
-
getPersistenceType
public PersistenceType getPersistenceType()
Description copied from class:StorageEngineFactoryReturn the persistence type current factory supports.- Specified by:
getPersistenceTypein classStorageEngineFactory- Returns:
-
-