You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Roman Puchkovskiy (Jira)" <ji...@apache.org> on 2022/10/31 06:16:00 UTC

[jira] [Updated] (IGNITE-18011) Avoid obtaining LogManager for streaming RAFT snapshot reading

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

Roman Puchkovskiy updated IGNITE-18011:
---------------------------------------
    Summary: Avoid obtaining LogManager for streaming RAFT snapshot reading  (was: Avoid hacky way to get LogManager for streaming RAFT snapshot reading)

> Avoid obtaining LogManager for streaming RAFT snapshot reading
> --------------------------------------------------------------
>
>                 Key: IGNITE-18011
>                 URL: https://issues.apache.org/jira/browse/IGNITE-18011
>             Project: Ignite
>          Issue Type: Improvement
>          Components: persistence
>            Reporter: Roman Puchkovskiy
>            Assignee: Roman Puchkovskiy
>            Priority: Major
>              Labels: ignite-3
>             Fix For: 3.0.0-beta2
>
>
> When freezing an outgoing snapshot scope (see {{{}OutgoingSnapshot#freezeScope(){}}}), we need to get snapshot metadata corresponding to the contents of our storages (MV+TX) at that precise moment. The snapshot metadata includes last applied index (which we have), also term and lists of followers and learners which we need to obtain. In JRaft, we can take them from LogManager.
> The problem is that JRaft does not provide a way to get the corresponding {{LogManager}} from this code. The 'right' way to fix this would be to change JRaft internals so that LogManager instance is made available to snapshot readers. But we should not touch JRaft core when we can avoid this (because, in the future, we might need to merge new version of JRaft into our codebase). So current implementation adds a way to obtain the current JRaft Node and then take LogManager instance from it.
> A facility to get peers (followers/learners) is planned in the future, it could be used instead of a LogManager. But it's not clear how a term could be obtained without it.



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