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