Package org.apache.bookkeeper.metastore
Interface MetastoreTable
-
- All Known Subinterfaces:
MetastoreScannableTable
- All Known Implementing Classes:
InMemoryMetastoreTable
public interface MetastoreTable
Metastore Table interface.
-
-
Field Summary
Fields Modifier and Type Field Description static java.util.Set<java.lang.String>
ALL_FIELDS
static java.util.Set<java.lang.String>
NON_FIELDS
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
close()
Close the table.void
get(java.lang.String key, java.util.Set<java.lang.String> fields, MetastoreCallback<Versioned<Value>> cb, java.lang.Object ctx)
Get specified fields of a key.void
get(java.lang.String key, MetastoreCallback<Versioned<Value>> cb, java.lang.Object ctx)
Get all fields of a key.void
get(java.lang.String key, MetastoreWatcher watcher, MetastoreCallback<Versioned<Value>> cb, java.lang.Object ctx)
Get all fields of a key.java.lang.String
getName()
Get table name.void
openCursor(java.util.Set<java.lang.String> fields, MetastoreCallback<MetastoreCursor> cb, java.lang.Object ctx)
Open a cursor to loop over all the entries of the table, which returns the specifiedfields
for each entry.void
openCursor(MetastoreCallback<MetastoreCursor> cb, java.lang.Object ctx)
Open a cursor to loop over all the entries of the table, which returns all fields for each entry.void
put(java.lang.String key, Value value, Version version, MetastoreCallback<Version> cb, java.lang.Object ctx)
Update a key according to its version.void
remove(java.lang.String key, Version version, MetastoreCallback<java.lang.Void> cb, java.lang.Object ctx)
Remove a key by its version.
-
-
-
Method Detail
-
getName
java.lang.String getName()
Get table name.- Returns:
- table name
-
get
void get(java.lang.String key, MetastoreCallback<Versioned<Value>> cb, java.lang.Object ctx)
Get all fields of a key.Return Code:
MSException.Code.OK
: success returning the keyMSException.Code.NoKey
: no key foundMSException.Code.IllegalOp
/MSException.Code.ServiceDown
: other issues
- Parameters:
key
- Key Namecb
- Callback to return all fields of the keyctx
- Callback context
-
get
void get(java.lang.String key, MetastoreWatcher watcher, MetastoreCallback<Versioned<Value>> cb, java.lang.Object ctx)
Get all fields of a key.Return Code:
MSException.Code.OK
: success returning the keyMSException.Code.NoKey
: no key foundMSException.Code.IllegalOp
/MSException.Code.ServiceDown
: other issues
- Parameters:
key
- Key Namewatcher
- Watcher object to receive notificationscb
- Callback to return all fields of the keyctx
- Callback context
-
get
void get(java.lang.String key, java.util.Set<java.lang.String> fields, MetastoreCallback<Versioned<Value>> cb, java.lang.Object ctx)
Get specified fields of a key.Return Code:
MSException.Code.OK
: success returning the keyMSException.Code.NoKey
: no key foundMSException.Code.IllegalOp
/MSException.Code.ServiceDown
: other issues
- Parameters:
key
- Key Namefields
- Fields to returncb
- Callback to return specified fields of the keyctx
- Callback context
-
put
void put(java.lang.String key, Value value, Version version, MetastoreCallback<Version> cb, java.lang.Object ctx)
Update a key according to its version.Return Code:
MSException.Code.OK
: success updating the keyMSException.Code.BadVersion
: failed to update the key due to bad versionMSException.Code.NoKey
: no key found to update data, if not providedVersion.NEW
MSException.Code.KeyExists
: entry exists providingVersion.NEW
MSException.Code.IllegalOp
/MSException.Code.ServiceDown
: other issues
The key is updated only when the version matches its current version. In particular, if the provided version is:
Version.ANY
: update the data without comparing its version. Note this usage is not encouraged since it may mess up data consistency.Version.NEW
: create the entry if it doesn't exist before; Otherwise returnMSException.Code.KeyExists
.
- Parameters:
key
- Key Namevalue
- Value to update.version
- Version specified to update.cb
- Callback to return new version after updated.ctx
- Callback context
-
remove
void remove(java.lang.String key, Version version, MetastoreCallback<java.lang.Void> cb, java.lang.Object ctx)
Remove a key by its version.The key is removed only when the version matches its current version. If
version
isVersion.ANY
, the key would be removed directly.Return Code:
MSException.Code.OK
: success updating the keyMSException.Code.NoKey
: if the key doesn't exist.MSException.Code.BadVersion
: failed to delete the key due to bad versionMSException.Code.IllegalOp
/MSException.Code.ServiceDown
: other issues
- Parameters:
key
- Key Name.version
- Version specified to remove.cb
- Callback to return all fields of the keyctx
- Callback context
-
openCursor
void openCursor(MetastoreCallback<MetastoreCursor> cb, java.lang.Object ctx)
Open a cursor to loop over all the entries of the table, which returns all fields for each entry. The returned cursor doesn't need to guarantee any order, since the underlying might be a hash table or an order table.- Parameters:
cb
- Callback to return an opened cursorctx
- Callback context
-
openCursor
void openCursor(java.util.Set<java.lang.String> fields, MetastoreCallback<MetastoreCursor> cb, java.lang.Object ctx)
Open a cursor to loop over all the entries of the table, which returns the specifiedfields
for each entry. The returned cursor doesn't need to guarantee any order, since the underlying might be a hash table or an order table.- Parameters:
fields
- Fields to selectcb
- Callback to return an opened cursorctx
- Callback context
-
close
void close()
Close the table.
-
-