Package org.apache.pulsar.metadata.api
Interface MetadataStore
- All Superinterfaces:
AutoCloseable
- All Known Subinterfaces:
MetadataStoreExtended
- All Known Implementing Classes:
AbstractBatchedMetadataStore,AbstractMetadataStore,EtcdMetadataStore,FaultInjectionMetadataStore,LocalMemoryMetadataStore,RocksdbMetadataStore,ZKMetadataStore
Metadata store client interface.
NOTE: This API is still evolving and will be refactored as needed until all the metadata usages are converted into
using it.
-
Method Summary
Modifier and TypeMethodDescriptiondeleteRecursive(String path) Delete a key-value pair and all the children nodes.Read whether a specific path exists.getChildren(String path) Return all the nodes (lexicographically sorted) that are children to the specific path.default MetadataCacheConfigReturns the default metadata cache config.default <T> MetadataCache<T>getMetadataCache(com.fasterxml.jackson.core.type.TypeReference<T> typeRef) Create a metadata cache specialized for a specific class.<T> MetadataCache<T>getMetadataCache(com.fasterxml.jackson.core.type.TypeReference<T> typeRef, MetadataCacheConfig cacheConfig) Create a metadata cache specialized for a specific class.default <T> MetadataCache<T>getMetadataCache(Class<T> clazz) Create a metadata cache specialized for a specific class.<T> MetadataCache<T>getMetadataCache(Class<T> clazz, MetadataCacheConfig cacheConfig) Create a metadata cache specialized for a specific class.default <T> MetadataCache<T>getMetadataCache(MetadataSerde<T> serde) Create a metadata cache that uses a particular serde object.<T> MetadataCache<T>getMetadataCache(MetadataSerde<T> serde, MetadataCacheConfig cacheConfig) Create a metadata cache that uses a particular serde object.Put a new value for a given key.voidregisterListener(Consumer<Notification> listener) Register a listener that will be called on changes in the underlying store.Methods inherited from interface java.lang.AutoCloseable
close
-
Method Details
-
get
Read the value of one key, identified by the path The async call will return a future that yields aGetResultthat will contain the value and the associatedStatobject. If the value is not found, the future will yield an emptyOptional.- Parameters:
path- the path of the key to get from the store- Returns:
- a future to track the async request
-
getChildren
Return all the nodes (lexicographically sorted) that are children to the specific path. If the path itself does not exist, it will return an empty list.- Parameters:
path- the path of the key to get from the store- Returns:
- a future to track the async request
-
exists
Read whether a specific path exists. Note: In case of keys with multiple levels (eg: '/a/b/c'), checking the existence of a parent (eg. '/a') might not necessarily return true, unless the key had been explicitly created.- Parameters:
path- the path of the key to check on the store- Returns:
- a future to track the async request
-
put
Put a new value for a given key. The caller can specify an expected version to be atomically checked against the current version of the stored data. The future will return theStatobject associated with the newly inserted value.- Parameters:
path- the path of the key to delete from the storevalue- the value toexpectedVersion- if present, the version will have to match with the currently stored value for the operation to succeed. Use -1 to enforce a non-existing value.- Returns:
- a future to track the async request
- Throws:
MetadataStoreException.BadVersionException- if the expected version doesn't match the actual version of the data
-
delete
- Parameters:
path- the path of the key to delete from the storeexpectedVersion- if present, the version will have to match with the currently stored value for the operation to succeed- Returns:
- a future to track the async request
- Throws:
MetadataStoreException.NotFoundException- if the path is not foundMetadataStoreException.BadVersionException- if the expected version doesn't match the actual version of the data
-
deleteRecursive
Delete a key-value pair and all the children nodes. Note: the operation might not be carried in an atomic fashion. If the operation fails, the deletion of the tree might be only partial.- Parameters:
path- the path of the key to delete from the store- Returns:
- a future to track the async request
-
registerListener
Register a listener that will be called on changes in the underlying store.- Parameters:
listener- a consumer of notifications
-
getMetadataCache
Create a metadata cache specialized for a specific class.- Type Parameters:
T-- Parameters:
clazz- the class type to be used for serialization/deserializationcacheConfig- the cache configuration to be used- Returns:
- the metadata cache object
-
getMetadataCache
Create a metadata cache specialized for a specific class.- Type Parameters:
T-- Parameters:
clazz- the class type to be used for serialization/deserialization- Returns:
- the metadata cache object
-
getMetadataCache
<T> MetadataCache<T> getMetadataCache(com.fasterxml.jackson.core.type.TypeReference<T> typeRef, MetadataCacheConfig cacheConfig) Create a metadata cache specialized for a specific class.- Type Parameters:
T-- Parameters:
typeRef- the type ref description to be used for serialization/deserializationcacheConfig- the cache configuration to be used- Returns:
- the metadata cache object
-
getMetadataCache
default <T> MetadataCache<T> getMetadataCache(com.fasterxml.jackson.core.type.TypeReference<T> typeRef) Create a metadata cache specialized for a specific class.- Type Parameters:
T-- Parameters:
typeRef- the type ref description to be used for serialization/deserialization- Returns:
- the metadata cache object
-
getMetadataCache
Create a metadata cache that uses a particular serde object.- Type Parameters:
T-- Parameters:
serde- the custom serialization/deserialization objectcacheConfig- the cache configuration to be used- Returns:
- the metadata cache object
-
getMetadataCache
Create a metadata cache that uses a particular serde object.- Type Parameters:
T-- Parameters:
serde- the custom serialization/deserialization object- Returns:
- the metadata cache object
-
getDefaultMetadataCacheConfig
Returns the default metadata cache config.- Returns:
- default metadata cache config
-