public class RocksDBStore<K,V> extends Object implements AdvancedLoadWriteStore<K,V>
AdvancedCacheLoader.CacheLoaderTask<K,V>, AdvancedCacheLoader.TaskContext
AdvancedCacheWriter.PurgeListener<K>
Constructor and Description |
---|
RocksDBStore() |
Modifier and Type | Method and Description |
---|---|
void |
clear()
Removes all the data from the storage.
|
boolean |
contains(Object key)
Returns true if the storage contains an entry associated with the given key.
|
boolean |
delete(Object key) |
protected void |
destroyDatabase(String location) |
void |
init(InitializationContext ctx)
Used to initialize a cache loader.
|
boolean |
isAvailable() |
MarshalledEntry |
load(Object key)
Fetches an entry from the storage.
|
protected org.rocksdb.RocksDB |
openDatabase(String location,
org.rocksdb.Options options)
Creates database if it doesn't exist.
|
org.reactivestreams.Publisher<MarshalledEntry<K,V>> |
publishEntries(Predicate<? super K> filter,
boolean fetchValue,
boolean fetchMetadata)
Publishes all entries from this store.
|
org.reactivestreams.Publisher<K> |
publishKeys(Predicate<? super K> filter)
Publishes all the keys from this store.
|
void |
purge(Executor executor,
AdvancedCacheWriter.PurgeListener purgeListener)
Using the thread in the pool, removed all the expired data from the persistence storage.
|
protected void |
reinitAllDatabases() |
protected org.rocksdb.RocksDB |
reinitDatabase(String location,
org.rocksdb.Options options) |
int |
size()
Returns the number of elements in the store.
|
void |
start()
Invoked on component start
|
void |
stop()
Invoked on component stop
|
void |
write(MarshalledEntry me)
Persists the entry to the storage.
|
void |
writeBatch(Iterable<MarshalledEntry<? extends K,? extends V>> marshalledEntries)
Persist all provided entries to the store in a single batch update.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
process
deleteBatch
public void init(InitializationContext ctx)
CacheLoader
PersistenceManager
when setting up cache loaders.init
in interface CacheLoader<K,V>
init
in interface CacheWriter<K,V>
public void start()
Lifecycle
protected org.rocksdb.RocksDB openDatabase(String location, org.rocksdb.Options options) throws IOException, org.rocksdb.RocksDBException
IOException
org.rocksdb.RocksDBException
protected void destroyDatabase(String location) throws IOException
IOException
protected org.rocksdb.RocksDB reinitDatabase(String location, org.rocksdb.Options options) throws IOException, org.rocksdb.RocksDBException
IOException
org.rocksdb.RocksDBException
protected void reinitAllDatabases() throws IOException, org.rocksdb.RocksDBException
IOException
org.rocksdb.RocksDBException
public void stop()
Lifecycle
public boolean isAvailable()
isAvailable
in interface CacheLoader<K,V>
isAvailable
in interface CacheWriter<K,V>
isAvailable
in interface ExternalStore<K,V>
public void clear()
AdvancedCacheWriter
clear
in interface AdvancedCacheWriter<K,V>
public int size()
AdvancedCacheLoader
size
in interface AdvancedCacheLoader<K,V>
public boolean contains(Object key)
CacheLoader
contains
in interface CacheLoader<K,V>
public org.reactivestreams.Publisher<K> publishKeys(Predicate<? super K> filter)
AdvancedCacheLoader
Subscriber
s as desired. Keys are not retrieved until a given Subscriber requests
them from the Subscription
.
Stores will return only non expired keys
publishKeys
in interface AdvancedCacheLoader<K,V>
filter
- a filterpublic org.reactivestreams.Publisher<MarshalledEntry<K,V>> publishEntries(Predicate<? super K> filter, boolean fetchValue, boolean fetchMetadata)
AdvancedCacheLoader
Subscriber
s as desired. Entries are not retrieved until a given Subscriber requests
them from the Subscription
.
If fetchMetadata is true this store must guarantee to not return any expired entries.
publishEntries
in interface AdvancedCacheLoader<K,V>
public boolean delete(Object key)
delete
in interface CacheWriter<K,V>
public void write(MarshalledEntry me)
CacheWriter
write
in interface CacheWriter<K,V>
MarshalledEntry
public MarshalledEntry load(Object key)
CacheLoader
MarshalledEntry
needs to be created here, InitializationContext.getMarshalledEntryFactory()
and InitializationContext.getByteBufferFactory()
should be used.load
in interface CacheLoader<K,V>
public void writeBatch(Iterable<MarshalledEntry<? extends K,? extends V>> marshalledEntries)
CacheWriter
CacheWriter.write(MarshalledEntry)
.writeBatch
in interface CacheWriter<K,V>
marshalledEntries
- an Iterable of MarshalledEntry to be written to the store.public void purge(Executor executor, AdvancedCacheWriter.PurgeListener purgeListener)
AdvancedCacheWriter
When this method returns all entries will be purged and no tasks will be running due to this loader in the provided executor. If however an exception is thrown there could be tasks still pending or running in the executor.
purge
in interface AdvancedCacheWriter<K,V>
Copyright © 2020 JBoss, a division of Red Hat. All rights reserved.