org.apache.storm.blobstore

## Class LocalModeClientBlobStore

- java.lang.Object
- - org.apache.storm.blobstore.ClientBlobStore
  - - org.apache.storm.blobstore.LocalModeClientBlobStore

- All Implemented Interfaces:
    AutoCloseable, Shutdownable

      public class LocalModeClientBlobStore
      extends ClientBlobStore

  A Client blob store for LocalMode.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.apache.storm.blobstore.ClientBlobStore

      `ClientBlobStore.WithBlobstore`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `LocalModeClientBlobStore(BlobStore wrapped)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `close()`
    `protected AtomicOutputStream` | `createBlobToExtend(String key, SettableBlobMeta meta)` Client facing API to create a blob.
    `void` | `createStateInZookeeper(String key)` Creates state inside a zookeeper.
    `void` | `deleteBlob(String key)` Client facing API to delete a blob.
    `InputStreamWithMeta` | `getBlob(String key)` Client facing API to read a blob.
    `ReadableBlobMeta` | `getBlobMeta(String key)` Client facing API to read the metadata information.
    `int` | `getBlobReplication(String key)` Client facing API to read the replication of a blob.
    `long` | `getRemoteBlobstoreUpdateTime()` Client facing API to get the last update time of existing blobs in a blobstore.
    `boolean` | `isRemoteBlobExists(String blobKey)` Decide if the blob is deleted from cluster.
    `Iterator<String>` | `listKeys()` List keys.
    `void` | `prepare(Map<String,Object> conf)` Sets up the client API by parsing the configs.
    `protected void` | `setBlobMetaToExtend(String key, SettableBlobMeta meta)` Client facing API to set the metadata for a blob.
    `boolean` | `setClient(Map<String,Object> conf, NimbusClient client)` Client facing API to set a nimbus client.
    `void` | `shutdown()`
    `AtomicOutputStream` | `updateBlob(String key)` Client facing API to update a blob.
    `int` | `updateBlobReplication(String key, int replication)` Client facing API to update the replication of a blob.

    - ### Methods inherited from class org.apache.storm.blobstore.ClientBlobStore

      `createBlob, setBlobMeta, withConfiguredClient`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### LocalModeClientBlobStore

          public LocalModeClientBlobStore(BlobStore wrapped)

  - ### Method Detail

    - #### shutdown

          public void shutdown()

    - #### prepare

          public void prepare(Map<String,Object> conf)

      Description copied from class: `ClientBlobStore`

      Sets up the client API by parsing the configs.

      Specified by:
        `prepare` in class `ClientBlobStore`
      Parameters:
        `conf` - The storm conf containing the config details

    - #### createBlobToExtend

          protected AtomicOutputStream createBlobToExtend(String key,
                                                          SettableBlobMeta meta)
                                                   throws AuthorizationException,
                                                          KeyAlreadyExistsException

      Description copied from class: `ClientBlobStore`

      Client facing API to create a blob.

      Specified by:
        `createBlobToExtend` in class `ClientBlobStore`
      Parameters:
        `key` - blob key name
        `meta` - contains ACL information
      Returns:
        AtomicOutputStream returns an output stream into which data can be written
      Throws:
        `AuthorizationException`
        `KeyAlreadyExistsException`

    - #### updateBlob

          public AtomicOutputStream updateBlob(String key)
                                        throws AuthorizationException,
                                               KeyNotFoundException

      Description copied from class: `ClientBlobStore`

      Client facing API to update a blob.

      Specified by:
        `updateBlob` in class `ClientBlobStore`
      Parameters:
        `key` - blob key name
      Returns:
        AtomicOutputStream returns an output stream into which data can be written
      Throws:
        `AuthorizationException`
        `KeyNotFoundException`

    - #### getBlobMeta

          public ReadableBlobMeta getBlobMeta(String key)
                                       throws AuthorizationException,
                                              KeyNotFoundException

      Description copied from class: `ClientBlobStore`

      Client facing API to read the metadata information.

      Specified by:
        `getBlobMeta` in class `ClientBlobStore`
      Parameters:
        `key` - blob key name
      Returns:
        AtomicOutputStream returns an output stream into which data can be written
      Throws:
        `AuthorizationException`
        `KeyNotFoundException`

    - #### isRemoteBlobExists

          public boolean isRemoteBlobExists(String blobKey)
                                     throws AuthorizationException

      Description copied from class: `ClientBlobStore`

      Decide if the blob is deleted from cluster.

      Specified by:
        `isRemoteBlobExists` in class `ClientBlobStore`
      Parameters:
        `blobKey` - blob key
      Throws:
        `AuthorizationException`

    - #### setBlobMetaToExtend

          protected void setBlobMetaToExtend(String key,
                                             SettableBlobMeta meta)
                                      throws AuthorizationException,
                                             KeyNotFoundException

      Description copied from class: `ClientBlobStore`

      Client facing API to set the metadata for a blob.

      Specified by:
        `setBlobMetaToExtend` in class `ClientBlobStore`
      Parameters:
        `key` - blob key name
        `meta` - contains ACL information
      Throws:
        `AuthorizationException`
        `KeyNotFoundException`

    - #### deleteBlob

          public void deleteBlob(String key)
                          throws AuthorizationException,
                                 KeyNotFoundException

      Description copied from class: `ClientBlobStore`

      Client facing API to delete a blob.

      Specified by:
        `deleteBlob` in class `ClientBlobStore`
      Parameters:
        `key` - blob key name
      Throws:
        `AuthorizationException`
        `KeyNotFoundException`

    - #### getBlob

          public InputStreamWithMeta getBlob(String key)
                                      throws AuthorizationException,
                                             KeyNotFoundException

      Description copied from class: `ClientBlobStore`

      Client facing API to read a blob.

      Specified by:
        `getBlob` in class `ClientBlobStore`
      Parameters:
        `key` - blob key name
      Returns:
        an InputStream to read the metadata for a blob
      Throws:
        `AuthorizationException`
        `KeyNotFoundException`

    - #### listKeys

          public Iterator<String> listKeys()

      Description copied from class: `ClientBlobStore`

      List keys.

      Specified by:
        `listKeys` in class `ClientBlobStore`
      Returns:
        Iterator for a list of keys currently present in the blob store.

    - #### getBlobReplication

          public int getBlobReplication(String key)
                                 throws AuthorizationException,
                                        KeyNotFoundException

      Description copied from class: `ClientBlobStore`

      Client facing API to read the replication of a blob.

      Specified by:
        `getBlobReplication` in class `ClientBlobStore`
      Parameters:
        `key` - blob key name
      Returns:
        int indicates the replication factor of a blob
      Throws:
        `AuthorizationException`
        `KeyNotFoundException`

    - #### updateBlobReplication

          public int updateBlobReplication(String key,
                                           int replication)
                                    throws AuthorizationException,
                                           KeyNotFoundException

      Description copied from class: `ClientBlobStore`

      Client facing API to update the replication of a blob.

      Specified by:
        `updateBlobReplication` in class `ClientBlobStore`
      Parameters:
        `key` - blob key name
        `replication` - int indicates the replication factor a blob has to be set
      Returns:
        int indicates the replication factor of a blob
      Throws:
        `AuthorizationException`
        `KeyNotFoundException`

    - #### setClient

          public boolean setClient(Map<String,Object> conf,
                                   NimbusClient client)

      Description copied from class: `ClientBlobStore`

      Client facing API to set a nimbus client.

      Specified by:
        `setClient` in class `ClientBlobStore`
      Parameters:
        `conf` - storm conf
        `client` - NimbusClient
      Returns:
        indicates where the client connection has been setup.

    - #### createStateInZookeeper

          public void createStateInZookeeper(String key)

      Description copied from class: `ClientBlobStore`

      Creates state inside a zookeeper. Required for blobstore to write to zookeeper when Nimbus HA is turned on in order to maintain state consistency.

      Specified by:
        `createStateInZookeeper` in class `ClientBlobStore`

    - #### close

          public void close()

      Specified by:
        `close` in interface `AutoCloseable`
      Specified by:
        `close` in class `ClientBlobStore`

    - #### getRemoteBlobstoreUpdateTime

          public long getRemoteBlobstoreUpdateTime()
                                            throws IOException

      Description copied from class: `ClientBlobStore`

      Client facing API to get the last update time of existing blobs in a blobstore. This is only required for use on supervisors.

      Specified by:
        `getRemoteBlobstoreUpdateTime` in class `ClientBlobStore`
      Returns:
        the timestamp of when the blobstore was last updated. -1L if the blobstore does not support this.
      Throws:
        `IOException`

Copyright © 2021 The Apache Software Foundation. All rights reserved.