Interface MetastoreTable

All Known Subinterfaces:
MetastoreScannableTable
All Known Implementing Classes:
InMemoryMetastoreTable

public interface MetastoreTable
Metastore Table interface.
  • Field Details

    • ALL_FIELDS

      static final Set<String> ALL_FIELDS
    • NON_FIELDS

      static final Set<String> NON_FIELDS
  • Method Details

    • getName

      String getName()
      Get table name.
      Returns:
      table name
    • get

      void get(String key, MetastoreCallback<Versioned<Value>> cb, Object ctx)
      Get all fields of a key.

      Return Code:

      • MSException.Code.OK: success returning the key
      • MSException.Code.NoKey: no key found
      • MSException.Code.IllegalOp/MSException.Code.ServiceDown: other issues

      Parameters:
      key - Key Name
      cb - Callback to return all fields of the key
      ctx - Callback context
    • get

      void get(String key, MetastoreWatcher watcher, MetastoreCallback<Versioned<Value>> cb, Object ctx)
      Get all fields of a key.

      Return Code:

      • MSException.Code.OK: success returning the key
      • MSException.Code.NoKey: no key found
      • MSException.Code.IllegalOp/MSException.Code.ServiceDown: other issues

      Parameters:
      key - Key Name
      watcher - Watcher object to receive notifications
      cb - Callback to return all fields of the key
      ctx - Callback context
    • get

      void get(String key, Set<String> fields, MetastoreCallback<Versioned<Value>> cb, Object ctx)
      Get specified fields of a key.

      Return Code:

      • MSException.Code.OK: success returning the key
      • MSException.Code.NoKey: no key found
      • MSException.Code.IllegalOp/MSException.Code.ServiceDown: other issues

      Parameters:
      key - Key Name
      fields - Fields to return
      cb - Callback to return specified fields of the key
      ctx - Callback context
    • put

      void put(String key, Value value, Version version, MetastoreCallback<Version> cb, Object ctx)
      Update a key according to its version.

      Return Code:

      • MSException.Code.OK: success updating the key
      • MSException.Code.BadVersion: failed to update the key due to bad version
      • MSException.Code.NoKey: no key found to update data, if not provided Version.NEW
      • MSException.Code.KeyExists: entry exists providing Version.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 return MSException.Code.KeyExists.
      Parameters:
      key - Key Name
      value - Value to update.
      version - Version specified to update.
      cb - Callback to return new version after updated.
      ctx - Callback context
    • remove

      void remove(String key, Version version, MetastoreCallback<Void> cb, Object ctx)
      Remove a key by its version.

      The key is removed only when the version matches its current version. If version is Version.ANY, the key would be removed directly.

      Return Code:

      • MSException.Code.OK: success updating the key
      • MSException.Code.NoKey: if the key doesn't exist.
      • MSException.Code.BadVersion: failed to delete the key due to bad version
      • MSException.Code.IllegalOp/MSException.Code.ServiceDown: other issues

      Parameters:
      key - Key Name.
      version - Version specified to remove.
      cb - Callback to return all fields of the key
      ctx - Callback context
    • openCursor

      void openCursor(MetastoreCallback<MetastoreCursor> cb, 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 cursor
      ctx - Callback context
    • openCursor

      void openCursor(Set<String> fields, MetastoreCallback<MetastoreCursor> cb, Object ctx)
      Open a cursor to loop over all the entries of the table, which returns the specified 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:
      fields - Fields to select
      cb - Callback to return an opened cursor
      ctx - Callback context
    • close

      void close()
      Close the table.