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

Ivan Andika updated RATIS-2377:
-------------------------------
    Description: 
Currently linearizable read might block if the read is not ready to be 
processed yet. This might not be desirable in some cases. For example, if a 
server only contains a fixed handler threads, this might block one of the 
thread for too long which can affect other queued writes / reads. 

It might be a good idea a mechanism so that the request will return / throws 
exception if the request cannot return immediately (similar to 
RaftServerImpl#staleReadAsync). In this case, the caller can either return the 
exception to client for retry or requeue the call.

  was:
Currently read operations such as stale read or linearizable read might block 
if the read is not ready to be processed yet. This might not be desirable in 
some cases. For example, if a server only contains a fixed handler threads, 
this might block one of the thread for too long which can affect other queued 
writes / reads. 

It might be a good idea to specify a fail fast flag in RaftClientRequest in 
submitClientRequestAsync so that the request will return / throws exception if 
the request cannot return immediately. In this case, the caller can either 
return the exception to client for retry or requeue the call.


> Support fail fast linearizable read operations
> ----------------------------------------------
>
>                 Key: RATIS-2377
>                 URL: https://issues.apache.org/jira/browse/RATIS-2377
>             Project: Ratis
>          Issue Type: New Feature
>            Reporter: Ivan Andika
>            Priority: Major
>
> Currently linearizable read might block if the read is not ready to be 
> processed yet. This might not be desirable in some cases. For example, if a 
> server only contains a fixed handler threads, this might block one of the 
> thread for too long which can affect other queued writes / reads. 
> It might be a good idea a mechanism so that the request will return / throws 
> exception if the request cannot return immediately (similar to 
> RaftServerImpl#staleReadAsync). In this case, the caller can either return 
> the exception to client for retry or requeue the call.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to