public class ZbRocksDb
extends org.rocksdb.RocksDB
RocksDB base class to expose a few protected methods, cuts down on the need for
reflection since all we need is the initial pointer to the wrapped database.
Add methods as you require them.
| Modifier and Type | Class and Description |
|---|---|
static interface |
ZbRocksDb.IteratorCallback |
static class |
ZbRocksDb.IteratorControl |
| Modifier | Constructor and Description |
|---|---|
protected |
ZbRocksDb(long nativeHandle) |
| Modifier and Type | Method and Description |
|---|---|
void |
delete(org.rocksdb.ColumnFamilyHandle columnFamily,
byte[] key,
int keyOffset,
int keyLength) |
void |
delete(org.rocksdb.ColumnFamilyHandle columnFamily,
org.agrona.DirectBuffer key) |
boolean |
exists(org.rocksdb.ColumnFamilyHandle columnFamily,
byte[] key,
int keyOffset,
int keyLength) |
boolean |
exists(org.rocksdb.ColumnFamilyHandle columnFamily,
org.agrona.DirectBuffer key) |
boolean |
exists(org.rocksdb.ColumnFamilyHandle columnFamily,
org.agrona.DirectBuffer key,
org.agrona.MutableDirectBuffer value)
Allows doing an exist call and getting the value back (since it has to be read anyway) if it
does.
|
void |
forEach(org.rocksdb.ColumnFamilyHandle columnFamily,
ZbRocksDb.IteratorCallback callback) |
void |
forEachPrefixed(org.rocksdb.ColumnFamilyHandle columnFamily,
org.agrona.DirectBuffer prefix,
ZbRocksDb.IteratorCallback callback)
NOTE: it doesn't seem possible in Java RocksDB to set a flexible prefix extractor on iterators
at the moment, so using prefixes seem to be mostly related to skipping files that do not
contain keys with the given prefix (which is useful anyway), but it will still iterate over all
keys contained in those files, so we still need to make sure the key actually matches the
prefix.
|
int |
get(org.rocksdb.ColumnFamilyHandle columnFamily,
byte[] key,
int keyOffset,
int keyLength,
byte[] value,
int valueOffset,
int valueLength) |
int |
get(org.rocksdb.ColumnFamilyHandle columnFamily,
org.agrona.DirectBuffer key,
org.agrona.MutableDirectBuffer value) |
int |
get(org.rocksdb.ColumnFamilyHandle columnFamily,
long key,
org.agrona.MutableDirectBuffer value) |
List<ZbRocksEntry> |
list(org.rocksdb.ColumnFamilyHandle columnFamily)
NOTE: not recommended for production use, since it loads all key/values into memory, but it's
very useful for debugging.
|
ZbRocksIterator |
newIterator() |
ZbRocksIterator |
newIterator(org.rocksdb.ColumnFamilyHandle columnFamily) |
ZbRocksIterator |
newIterator(org.rocksdb.ColumnFamilyHandle columnFamily,
org.rocksdb.ReadOptions readOptions) |
static ZbRocksDb |
open(org.rocksdb.DBOptions options,
String path,
List<org.rocksdb.ColumnFamilyDescriptor> columnFamilyDescriptors,
List<org.rocksdb.ColumnFamilyHandle> columnFamilyHandles) |
static ZbRocksDb |
open(org.rocksdb.Options options,
String path) |
void |
put(org.rocksdb.ColumnFamilyHandle columnFamily,
byte[] key,
int keyOffset,
int keyLength,
byte[] value,
int valueOffset,
int valueLength) |
void |
put(org.rocksdb.ColumnFamilyHandle columnFamily,
org.agrona.DirectBuffer key,
org.agrona.DirectBuffer value) |
compactRange, compactRange, compactRange, compactRange, compactRange, compactRange, compactRange, compactRange, continueBackgroundWork, createColumnFamily, delete, delete, delete, delete, delete, delete, delete, delete, deleteRange, deleteRange, deleteRange, deleteRange, deleteRange, deleteRange, deleteRange, deleteRange, destroyDB, disableFileDeletions, disposeInternal, dropColumnFamily, enableFileDeletions, flush, flush, get, get, get, get, get, get, get, get, get, get, get, get, get, get, get, get, getDefaultColumnFamily, getLatestSequenceNumber, getLongProperty, getLongProperty, getLongProperty, getLongProperty, getProperty, getProperty, getProperty0, getProperty0, getSnapshot, getSnapshot, getUpdatesSince, ingestExternalFile, ingestExternalFile, iterator, iterator, iteratorCF, iteratorCF, iterators, keyMayExist, keyMayExist, keyMayExist, keyMayExist, keyMayExist, keyMayExist, keyMayExist, keyMayExist, listColumnFamilies, listColumnFamilies, loadLibrary, loadLibrary, merge, merge, merge, merge, merge, merge, merge, merge, multiGet, multiGet, multiGet, multiGet, multiGet, multiGet, multiGet, multiGet, newIterator, newIterators, newIterators, open, open, open, open, openReadOnly, openReadOnly, openReadOnly, openReadOnly, openROnly, openROnly, pauseBackgroundWork, put, put, put, put, put, put, put, put, releaseSnapshot, releaseSnapshot, remove, remove, remove, remove, setOptions, singleDelete, singleDelete, singleDelete, singleDelete, singleDelete, singleDelete, singleDelete, singleDelete, storeOptionsInstance, write, write, write0, write1public static ZbRocksDb open(org.rocksdb.Options options, String path) throws org.rocksdb.RocksDBException
org.rocksdb.RocksDBExceptionpublic static ZbRocksDb open(org.rocksdb.DBOptions options, String path, List<org.rocksdb.ColumnFamilyDescriptor> columnFamilyDescriptors, List<org.rocksdb.ColumnFamilyHandle> columnFamilyHandles) throws org.rocksdb.RocksDBException
org.rocksdb.RocksDBExceptionpublic void put(org.rocksdb.ColumnFamilyHandle columnFamily,
byte[] key,
int keyOffset,
int keyLength,
byte[] value,
int valueOffset,
int valueLength)
public void put(org.rocksdb.ColumnFamilyHandle columnFamily,
org.agrona.DirectBuffer key,
org.agrona.DirectBuffer value)
public int get(org.rocksdb.ColumnFamilyHandle columnFamily,
byte[] key,
int keyOffset,
int keyLength,
byte[] value,
int valueOffset,
int valueLength)
public int get(org.rocksdb.ColumnFamilyHandle columnFamily,
org.agrona.DirectBuffer key,
org.agrona.MutableDirectBuffer value)
public int get(org.rocksdb.ColumnFamilyHandle columnFamily,
long key,
org.agrona.MutableDirectBuffer value)
public void delete(org.rocksdb.ColumnFamilyHandle columnFamily,
byte[] key,
int keyOffset,
int keyLength)
public void delete(org.rocksdb.ColumnFamilyHandle columnFamily,
org.agrona.DirectBuffer key)
public boolean exists(org.rocksdb.ColumnFamilyHandle columnFamily,
byte[] key,
int keyOffset,
int keyLength)
public boolean exists(org.rocksdb.ColumnFamilyHandle columnFamily,
org.agrona.DirectBuffer key)
public boolean exists(org.rocksdb.ColumnFamilyHandle columnFamily,
org.agrona.DirectBuffer key,
org.agrona.MutableDirectBuffer value)
NOTE: creates garbage by allocating a new string builder, which will then allocate a new string before filling the value buffer.
columnFamily - column family to look intokey - the key to look forvalue - a buffer which will be filled with the value if it existspublic void forEachPrefixed(org.rocksdb.ColumnFamilyHandle columnFamily,
org.agrona.DirectBuffer prefix,
ZbRocksDb.IteratorCallback callback)
My understanding is seek(prefix) simply positions the cursor to the first key (allowing to skip previous keys), but while iterating over subsequent keys we have to validate it.
public void forEach(org.rocksdb.ColumnFamilyHandle columnFamily,
ZbRocksDb.IteratorCallback callback)
public List<ZbRocksEntry> list(org.rocksdb.ColumnFamilyHandle columnFamily)
columnFamily - the column family to list all entries forpublic ZbRocksIterator newIterator()
newIterator in class org.rocksdb.RocksDBpublic ZbRocksIterator newIterator(org.rocksdb.ColumnFamilyHandle columnFamily)
newIterator in class org.rocksdb.RocksDBpublic ZbRocksIterator newIterator(org.rocksdb.ColumnFamilyHandle columnFamily, org.rocksdb.ReadOptions readOptions)
newIterator in class org.rocksdb.RocksDBCopyright © 2017–2018 camunda services GmbH. All rights reserved.