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)

Reply via email to