[ 
https://issues.apache.org/jira/browse/HDFS-12735?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16244617#comment-16244617
 ] 

Jitendra Nath Pandey commented on HDFS-12735:
---------------------------------------------

bq. The ratis StateMachine#applyTransaction does not guarantee that the calls 
will be ordered according to the log commit order and this function is the one 
which is implemented in this patch(Source: StateMachine.java file in ratis)

It is a little more complicated than I initially thought. Even though, 
operations like create and delete will be ordered by the client, the client 
would like to write a single large object in a pipeline asynchronously. Since, 
ozone objects are append only, the container state machine will need to order 
the writes for individual objects. The writes for different objects can be in 
parallel. 

 [~szetszwo] has provided a sophisticated task queue in RATIS-122, that tries 
to achieve similar. The additional complexity is that, a task queue is needed 
per object being written in the state machine.

> Make ContainerStateMachine#applyTransaction async
> -------------------------------------------------
>
>                 Key: HDFS-12735
>                 URL: https://issues.apache.org/jira/browse/HDFS-12735
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>            Reporter: Lokesh Jain
>            Assignee: Lokesh Jain
>              Labels: performance
>         Attachments: HDFS-12735-HDFS-7240.000.patch, 
> HDFS-12735-HDFS-7240.001.patch
>
>
> Currently ContainerStateMachine#applyTransaction makes a synchronous call to 
> dispatch client requests. Idea is to have a thread pool which dispatches 
> client requests and returns a CompletableFuture.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

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

Reply via email to