[ 
https://issues.apache.org/jira/browse/HDDS-6137?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

GuoHao updated HDDS-6137:
-------------------------
    Description: 
Optimized the putBlock method of BlockDataStreamOutput

 

*1. PutBlock does not use RaftRpc, but through the stream close() method*
{code:java}
// putBlock metadata

ByteBuffer buf =
    ContainerCommandRequestMessage.toMessage(putBlockRequestProto, null)
        .getContent().asReadOnlyByteBuffer();

out.writeAsync(buf, StandardWriteOption.CLOSE); {code}
*2.Mark the stream data boundary by sending an empty stream packet*
{code:java}
// Mark the stream data boundary

out.writeAsync(ByteBuffer.allocateDirect(0).asReadOnlyBuffer()); {code}
 

*3. Flush is also in the form of async RPC, because putBlock needs to fetch 
bcsId (Raft log index)*

 

  was:
Optimized the putBlock method of BlockDataStreamOutput
 # PutBlock does not use RaftRpc, but through the stream close() method
 # Mark the stream data boundary by sending an empty stream packet

{code:java}
// Mark the stream data boundary

out.writeAsync(ByteBuffer.allocateDirect(0).asReadOnlyBuffer());{code}
{code:java}
// putBlock metadata

ByteBuffer buf =
    ContainerCommandRequestMessage.toMessage(putBlockRequestProto, null)
        .getContent().asReadOnlyByteBuffer();

out.writeAsync(buf, StandardWriteOption.CLOSE); {code}
 

 


> Optimized the putBlock method of BlockDataStreamOutput
> ------------------------------------------------------
>
>                 Key: HDDS-6137
>                 URL: https://issues.apache.org/jira/browse/HDDS-6137
>             Project: Apache Ozone
>          Issue Type: Sub-task
>            Reporter: GuoHao
>            Assignee: GuoHao
>            Priority: Major
>
> Optimized the putBlock method of BlockDataStreamOutput
>  
> *1. PutBlock does not use RaftRpc, but through the stream close() method*
> {code:java}
> // putBlock metadata
> ByteBuffer buf =
>     ContainerCommandRequestMessage.toMessage(putBlockRequestProto, null)
>         .getContent().asReadOnlyByteBuffer();
> out.writeAsync(buf, StandardWriteOption.CLOSE); {code}
> *2.Mark the stream data boundary by sending an empty stream packet*
> {code:java}
> // Mark the stream data boundary
> out.writeAsync(ByteBuffer.allocateDirect(0).asReadOnlyBuffer()); {code}
>  
> *3. Flush is also in the form of async RPC, because putBlock needs to fetch 
> bcsId (Raft log index)*
>  



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to