All Known Implementing Classes:
ChunkManagerDispatcher, ChunkManagerDummyImpl, FilePerBlockStrategy, FilePerChunkStrategy

public interface ChunkManager
Chunk Manager allows read, write, delete and listing of chunks in a container.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    deleteChunk(Container container, org.apache.hadoop.hdds.client.BlockID blockID, org.apache.hadoop.ozone.container.common.helpers.ChunkInfo info)
    Deletes a given chunk.
    void
    deleteChunks(Container container, org.apache.hadoop.ozone.container.common.helpers.BlockData blockData)
     
    default void
    finalizeWriteChunk(KeyValueContainer container, org.apache.hadoop.hdds.client.BlockID blockId)
     
    default void
    finishWriteChunks(KeyValueContainer kvContainer, org.apache.hadoop.ozone.container.common.helpers.BlockData blockData)
     
    static int
    getBufferCapacityForChunkRead(org.apache.hadoop.ozone.container.common.helpers.ChunkInfo chunkInfo, int defaultReadBufferCapacity)
     
    default org.apache.ratis.statemachine.StateMachine.DataChannel
    getStreamDataChannel(Container container, org.apache.hadoop.hdds.client.BlockID blockID, ContainerMetrics metrics)
     
    org.apache.hadoop.ozone.common.ChunkBufferToByteString
    readChunk(Container container, org.apache.hadoop.hdds.client.BlockID blockID, org.apache.hadoop.ozone.container.common.helpers.ChunkInfo info, DispatcherContext dispatcherContext)
    reads the data defined by a chunk.
    default void
    Shutdown the chunkManager.
    default String
    streamInit(Container container, org.apache.hadoop.hdds.client.BlockID blockID)
     
    default void
    writeChunk(Container container, org.apache.hadoop.hdds.client.BlockID blockID, org.apache.hadoop.ozone.container.common.helpers.ChunkInfo info, ByteBuffer data, DispatcherContext dispatcherContext)
     
    void
    writeChunk(Container container, org.apache.hadoop.hdds.client.BlockID blockID, org.apache.hadoop.ozone.container.common.helpers.ChunkInfo info, org.apache.hadoop.ozone.common.ChunkBuffer data, DispatcherContext dispatcherContext)
    writes a given chunk.
  • Method Details

    • writeChunk

      void writeChunk(Container container, org.apache.hadoop.hdds.client.BlockID blockID, org.apache.hadoop.ozone.container.common.helpers.ChunkInfo info, org.apache.hadoop.ozone.common.ChunkBuffer data, DispatcherContext dispatcherContext) throws org.apache.hadoop.hdds.scm.container.common.helpers.StorageContainerException
      writes a given chunk.
      Parameters:
      container - - Container for the chunk
      blockID - - ID of the block.
      info - - ChunkInfo.
      data -
      dispatcherContext - - dispatcher context info.
      Throws:
      org.apache.hadoop.hdds.scm.container.common.helpers.StorageContainerException
    • writeChunk

      default void writeChunk(Container container, org.apache.hadoop.hdds.client.BlockID blockID, org.apache.hadoop.ozone.container.common.helpers.ChunkInfo info, ByteBuffer data, DispatcherContext dispatcherContext) throws org.apache.hadoop.hdds.scm.container.common.helpers.StorageContainerException
      Throws:
      org.apache.hadoop.hdds.scm.container.common.helpers.StorageContainerException
    • readChunk

      org.apache.hadoop.ozone.common.ChunkBufferToByteString readChunk(Container container, org.apache.hadoop.hdds.client.BlockID blockID, org.apache.hadoop.ozone.container.common.helpers.ChunkInfo info, DispatcherContext dispatcherContext) throws org.apache.hadoop.hdds.scm.container.common.helpers.StorageContainerException
      reads the data defined by a chunk.
      Parameters:
      container - - Container for the chunk
      blockID - - ID of the block.
      info - - ChunkInfo.
      dispatcherContext - - dispatcher context info.
      Returns:
      byte array
      Throws:
      org.apache.hadoop.hdds.scm.container.common.helpers.StorageContainerException - TODO: Right now we do not support partial reads and writes of chunks. TODO: Explore if we need to do that for ozone.
    • deleteChunk

      void deleteChunk(Container container, org.apache.hadoop.hdds.client.BlockID blockID, org.apache.hadoop.ozone.container.common.helpers.ChunkInfo info) throws org.apache.hadoop.hdds.scm.container.common.helpers.StorageContainerException
      Deletes a given chunk.
      Parameters:
      container - - Container for the chunk
      blockID - - ID of the block.
      info - - Chunk Info
      Throws:
      org.apache.hadoop.hdds.scm.container.common.helpers.StorageContainerException
    • deleteChunks

      void deleteChunks(Container container, org.apache.hadoop.ozone.container.common.helpers.BlockData blockData) throws org.apache.hadoop.hdds.scm.container.common.helpers.StorageContainerException
      Throws:
      org.apache.hadoop.hdds.scm.container.common.helpers.StorageContainerException
    • shutdown

      default void shutdown()
      Shutdown the chunkManager.
    • finishWriteChunks

      default void finishWriteChunks(KeyValueContainer kvContainer, org.apache.hadoop.ozone.container.common.helpers.BlockData blockData) throws IOException
      Throws:
      IOException
    • finalizeWriteChunk

      default void finalizeWriteChunk(KeyValueContainer container, org.apache.hadoop.hdds.client.BlockID blockId) throws IOException
      Throws:
      IOException
    • streamInit

      default String streamInit(Container container, org.apache.hadoop.hdds.client.BlockID blockID) throws org.apache.hadoop.hdds.scm.container.common.helpers.StorageContainerException
      Throws:
      org.apache.hadoop.hdds.scm.container.common.helpers.StorageContainerException
    • getStreamDataChannel

      default org.apache.ratis.statemachine.StateMachine.DataChannel getStreamDataChannel(Container container, org.apache.hadoop.hdds.client.BlockID blockID, ContainerMetrics metrics) throws org.apache.hadoop.hdds.scm.container.common.helpers.StorageContainerException
      Throws:
      org.apache.hadoop.hdds.scm.container.common.helpers.StorageContainerException
    • getBufferCapacityForChunkRead

      static int getBufferCapacityForChunkRead(org.apache.hadoop.ozone.container.common.helpers.ChunkInfo chunkInfo, int defaultReadBufferCapacity)