public interface TierProducerAgent extends AutoCloseable
Note that when writing a buffer to a tier, the TierProducerAgent
should first call
tryStartNewSegment
to start a new segment. The agent can then continue writing the buffer
to the tier as long as the return value of write
is true. If the return value of write
is false, it indicates that the current segment can no longer store the buffer, and the
agent should try to start a new segment before writing the buffer.
Modifier and Type | Method and Description |
---|---|
void |
close()
Close the agent.
|
boolean |
tryStartNewSegment(TieredStorageSubpartitionId subpartitionId,
int segmentId,
int minNumBuffers)
Try to start a new segment in the Tier.
|
boolean |
tryWrite(TieredStorageSubpartitionId subpartitionId,
Buffer finishedBuffer,
Object bufferOwner,
int numRemainingConsecutiveBuffers)
Writes the finished
Buffer to the consumer. |
boolean tryStartNewSegment(TieredStorageSubpartitionId subpartitionId, int segmentId, int minNumBuffers)
subpartitionId
- subpartition id that the new segment belongs tosegmentId
- id of the new segmentminNumBuffers
- the minimum number of buffers that are expected to be written to the
newly created segment.boolean tryWrite(TieredStorageSubpartitionId subpartitionId, Buffer finishedBuffer, Object bufferOwner, int numRemainingConsecutiveBuffers)
Buffer
to the consumer.
Note that the method is successfully executed (without throwing any exception), the buffer should be released by the caller, otherwise the tier should be responsible to recycle the buffer.
subpartitionId
- the subpartition id that the buffer is writing tofinishedBuffer
- the writing bufferbufferOwner
- the current owner of this writing buffernumRemainingConsecutiveBuffers
- number of buffers that would be passed in the following
invocations and should be written to the same segment as this onevoid close()
Note this only releases resources directly hold by the agent, which excludes resources managed by the resource registry.
close
in interface AutoCloseable
Copyright © 2014–2024 The Apache Software Foundation. All rights reserved.