Andrey N. Gura created IGNITE-16767:
---------------------------------------
Summary: Implement read-only operations directly on storage
Key: IGNITE-16767
URL: https://issues.apache.org/jira/browse/IGNITE-16767
Project: Ignite
Issue Type: Task
Reporter: Andrey N. Gura
Currently all operations, read and write, go throughout Raft leader. Such
approach is inefficient due to the following reasons:
* All operations are serialized and it is impossible to read data in parallel
with write operations on the same partition.
* It is impossible to scale read operations on non-leader Raft group members
(followers and learners).
* Cursors (e.g. index scans) can't be implemented effectively on replicated
Raft commands.
Needs to implement a logic of reading data from an arbitrary Raft group member
directly using direct messaging instead of Raft commands replication.
At the moment it is enough to implement inconsistent reads and scans. Interface
should support reads from particular node (passed as parameter of a method) as
well as random node from Raft group bounded by specific type (follower,
learner).
Consistent direct read should be implemented after introducing MVCC based
transaction protocol. But inconsistent read possibly will still usefull in the
future.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)