public abstract class AbstractWriteBatch extends RocksObject implements WriteBatchInterface
nativeHandle_
owningHandle_
Modifier | Constructor and Description |
---|---|
protected |
AbstractWriteBatch(long nativeHandle) |
Modifier and Type | Method and Description |
---|---|
void |
clear()
Clear all updates buffered in this batch
|
int |
count()
Returns the number of updates in the batch.
|
void |
delete(byte[] key)
If the database contains a mapping for "key", erase it.
|
void |
delete(ColumnFamilyHandle columnFamilyHandle,
byte[] key)
If column family contains a mapping for "key", erase it.
|
void |
deleteRange(byte[] beginKey,
byte[] endKey)
Removes the database entries in the range ["beginKey", "endKey"), i.e.,
including "beginKey" and excluding "endKey".
|
void |
deleteRange(ColumnFamilyHandle columnFamilyHandle,
byte[] beginKey,
byte[] endKey)
Removes the database entries in the range ["beginKey", "endKey"), i.e.,
including "beginKey" and excluding "endKey".
|
WriteBatch |
getWriteBatch()
Get the underlying Write Batch.
|
void |
merge(byte[] key,
byte[] value)
Merge "value" with the existing value of "key" in the database.
|
void |
merge(ColumnFamilyHandle columnFamilyHandle,
byte[] key,
byte[] value)
Merge "value" with the existing value of "key" in given column family.
|
void |
popSavePoint()
Pop the most recent save point.
|
void |
put(byte[] key,
byte[] value)
Store the mapping "key->value" in the database.
|
void |
put(ColumnFamilyHandle columnFamilyHandle,
byte[] key,
byte[] value)
Store the mapping "key->value" within given column
family.
|
void |
putLogData(byte[] blob)
Append a blob of arbitrary size to the records in this batch.
|
void |
remove(byte[] key)
Deprecated.
|
void |
remove(ColumnFamilyHandle columnFamilyHandle,
byte[] key)
Deprecated.
|
void |
rollbackToSavePoint()
Remove all entries in this batch (Put, Merge, Delete, PutLogData) since
the most recent call to SetSavePoint() and removes the most recent save
point.
|
void |
setMaxBytes(long maxBytes)
Set the maximum size of the write batch.
|
void |
setSavePoint()
Records the state of the batch for future calls to RollbackToSavePoint().
|
void |
singleDelete(byte[] key)
Remove the database entry for
key . |
void |
singleDelete(ColumnFamilyHandle columnFamilyHandle,
byte[] key)
Remove the database entry for
key . |
disposeInternal, disposeInternal
close, disOwnNativeHandle, isOwningHandle
dispose, finalize
public int count()
WriteBatchInterface
count
in interface WriteBatchInterface
public void put(byte[] key, byte[] value) throws RocksDBException
WriteBatchInterface
Store the mapping "key->value" in the database.
put
in interface WriteBatchInterface
key
- the specified key to be inserted.value
- the value associated with the specified key.RocksDBException
- thrown if error happens in underlying native library.public void put(ColumnFamilyHandle columnFamilyHandle, byte[] key, byte[] value) throws RocksDBException
WriteBatchInterface
Store the mapping "key->value" within given column family.
put
in interface WriteBatchInterface
columnFamilyHandle
- ColumnFamilyHandle
instancekey
- the specified key to be inserted.value
- the value associated with the specified key.RocksDBException
- thrown if error happens in underlying native library.public void merge(byte[] key, byte[] value) throws RocksDBException
WriteBatchInterface
Merge "value" with the existing value of "key" in the database. "key->merge(existing, value)"
merge
in interface WriteBatchInterface
key
- the specified key to be merged.value
- the value to be merged with the current value for
the specified key.RocksDBException
- thrown if error happens in underlying native library.public void merge(ColumnFamilyHandle columnFamilyHandle, byte[] key, byte[] value) throws RocksDBException
WriteBatchInterface
Merge "value" with the existing value of "key" in given column family. "key->merge(existing, value)"
merge
in interface WriteBatchInterface
columnFamilyHandle
- ColumnFamilyHandle
instancekey
- the specified key to be merged.value
- the value to be merged with the current value for
the specified key.RocksDBException
- thrown if error happens in underlying native library.@Deprecated public void remove(byte[] key) throws RocksDBException
WriteBatchInterface
If the database contains a mapping for "key", erase it. Else do nothing.
remove
in interface WriteBatchInterface
key
- Key to delete within databaseRocksDBException
- thrown if error happens in underlying native library.@Deprecated public void remove(ColumnFamilyHandle columnFamilyHandle, byte[] key) throws RocksDBException
WriteBatchInterface
If column family contains a mapping for "key", erase it. Else do nothing.
remove
in interface WriteBatchInterface
columnFamilyHandle
- ColumnFamilyHandle
instancekey
- Key to delete within databaseRocksDBException
- thrown if error happens in underlying native library.public void delete(byte[] key) throws RocksDBException
WriteBatchInterface
If the database contains a mapping for "key", erase it. Else do nothing.
delete
in interface WriteBatchInterface
key
- Key to delete within databaseRocksDBException
- thrown if error happens in underlying native library.public void delete(ColumnFamilyHandle columnFamilyHandle, byte[] key) throws RocksDBException
WriteBatchInterface
If column family contains a mapping for "key", erase it. Else do nothing.
delete
in interface WriteBatchInterface
columnFamilyHandle
- ColumnFamilyHandle
instancekey
- Key to delete within databaseRocksDBException
- thrown if error happens in underlying native library.public void singleDelete(byte[] key) throws RocksDBException
WriteBatchInterface
key
. Requires that the key exists
and was not overwritten. It is not an error if the key did not exist
in the database.
If a key is overwritten (by calling WriteBatchInterface.put(byte[], byte[])
multiple
times), then the result of calling SingleDelete() on this key is undefined.
SingleDelete() only behaves correctly if there has been only one Put()
for this key since the previous call to SingleDelete() for this key.
This feature is currently an experimental performance optimization
for a very specific workload. It is up to the caller to ensure that
SingleDelete is only used for a key that is not deleted using Delete() or
written using Merge(). Mixing SingleDelete operations with Deletes and
Merges can result in undefined behavior.singleDelete
in interface WriteBatchInterface
key
- Key to delete within databaseRocksDBException
- thrown if error happens in underlying
native library.public void singleDelete(ColumnFamilyHandle columnFamilyHandle, byte[] key) throws RocksDBException
WriteBatchInterface
key
. Requires that the key exists
and was not overwritten. It is not an error if the key did not exist
in the database.
If a key is overwritten (by calling WriteBatchInterface.put(byte[], byte[])
multiple
times), then the result of calling SingleDelete() on this key is undefined.
SingleDelete() only behaves correctly if there has been only one Put()
for this key since the previous call to SingleDelete() for this key.
This feature is currently an experimental performance optimization
for a very specific workload. It is up to the caller to ensure that
SingleDelete is only used for a key that is not deleted using Delete() or
written using Merge(). Mixing SingleDelete operations with Deletes and
Merges can result in undefined behavior.singleDelete
in interface WriteBatchInterface
columnFamilyHandle
- The column family to delete the key fromkey
- Key to delete within databaseRocksDBException
- thrown if error happens in underlying
native library.public void deleteRange(byte[] beginKey, byte[] endKey) throws RocksDBException
WriteBatchInterface
deleteRange
in interface WriteBatchInterface
beginKey
- First key to delete within database (included)endKey
- Last key to delete within database (excluded)RocksDBException
- thrown if error happens in underlying native library.public void deleteRange(ColumnFamilyHandle columnFamilyHandle, byte[] beginKey, byte[] endKey) throws RocksDBException
WriteBatchInterface
deleteRange
in interface WriteBatchInterface
columnFamilyHandle
- ColumnFamilyHandle
instancebeginKey
- First key to delete within database (included)endKey
- Last key to delete within database (excluded)RocksDBException
- thrown if error happens in underlying native library.public void putLogData(byte[] blob) throws RocksDBException
WriteBatchInterface
putLogData
in interface WriteBatchInterface
blob
- binary object to be insertedRocksDBException
- thrown if error happens in underlying native library.public void clear()
WriteBatchInterface
clear
in interface WriteBatchInterface
public void setSavePoint()
WriteBatchInterface
setSavePoint
in interface WriteBatchInterface
public void rollbackToSavePoint() throws RocksDBException
WriteBatchInterface
rollbackToSavePoint
in interface WriteBatchInterface
RocksDBException
- if there is no previous call to SetSavePoint()public void popSavePoint() throws RocksDBException
WriteBatchInterface
WriteBatchInterface.setSavePoint()
.popSavePoint
in interface WriteBatchInterface
RocksDBException
- If there is no previous call to
WriteBatchInterface.setSavePoint()
, an exception with
Status.Code.NotFound
will be thrown.public void setMaxBytes(long maxBytes)
WriteBatchInterface
setMaxBytes
in interface WriteBatchInterface
maxBytes
- the maximum size in bytes.public WriteBatch getWriteBatch()
WriteBatchInterface
getWriteBatch
in interface WriteBatchInterface