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

Aleksandr Polovtcev updated IGNITE-18398:
-----------------------------------------
    Description: 
Meta Storage currently uses Raft to perform read operations. This brings us the 
ability to read the latest data from the leader (a good thing) but on the other 
hand Raft reads are single-threaded and linearizable (which Meta Storage reads 
do not require). In order to make reads concurrent, it is proposed to switch to 
the Replica approach (currently used to serve partition data reads).

TBD: Design of this ticket is blocked by the Placement Driver work being done 
in IGNITE-18524. Here's the vague description of how reads can be done (which 
should probably change after the Driver is implemented):
# A node issues a read request to the Meta Storage;
# Meta Storage Manager goes to the Placement Driver to obtain the Primary 
Replica Consistent ID;
# Meta Storage Manager issues a network request to the obtained ID;
# If the receiver node is still the Primary Replica - the request is served 
using the local storage;
# If the Primary Replica has changed - the receiver node re-routes the request 
to it.

  was:Meta Storage currently uses Raft to perform read operations. We should 
switch to the common approach used by other components, that is, use a 
ReplicaService.


> Use ReplicaService instead of Raft for serving Meta Storage reads
> -----------------------------------------------------------------
>
>                 Key: IGNITE-18398
>                 URL: https://issues.apache.org/jira/browse/IGNITE-18398
>             Project: Ignite
>          Issue Type: Task
>            Reporter: Aleksandr Polovtcev
>            Assignee: Aleksandr Polovtcev
>            Priority: Major
>              Labels: ignite-3
>
> Meta Storage currently uses Raft to perform read operations. This brings us 
> the ability to read the latest data from the leader (a good thing) but on the 
> other hand Raft reads are single-threaded and linearizable (which Meta 
> Storage reads do not require). In order to make reads concurrent, it is 
> proposed to switch to the Replica approach (currently used to serve partition 
> data reads).
> TBD: Design of this ticket is blocked by the Placement Driver work being done 
> in IGNITE-18524. Here's the vague description of how reads can be done (which 
> should probably change after the Driver is implemented):
> # A node issues a read request to the Meta Storage;
> # Meta Storage Manager goes to the Placement Driver to obtain the Primary 
> Replica Consistent ID;
> # Meta Storage Manager issues a network request to the obtained ID;
> # If the receiver node is still the Primary Replica - the request is served 
> using the local storage;
> # If the Primary Replica has changed - the receiver node re-routes the 
> request to it.



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

Reply via email to