[
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)