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/12/02 11:43:00 UTC

[jira] [Updated] (IGNITE-18118) Support group configuration in persistent pagememory-based MvPartitionStorage

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

Roman Puchkovskiy updated IGNITE-18118:
---------------------------------------
    Description: 
Currently, page-memory-based implementations of {{MvPartitionStorage}} do not store last RAFT group configuration. This needs to be implemented. Namely, the corresponding methods in {{PartitionMetaIo}} should be implemented.

One complication with this is that group configuration length is not known upfront, so a varlen encoding needs to be used. Also, probably, a bigger complication is that a configuration might not fit in one page.

If we are sure it fill fit one page (still containing the rest partition meta), we can just write it last: first write its length, then the bytes of data.

If we need to make sure we support cases when partition metadata exceeds one page in size, we might add another page type X, store group config in a chain of pages of type X, and put a link to first of them in partition meta page.

  was:
Currently, page-memory-based implementations of {{MvPartitionStorage}} do not store last RAFT group configuration. This needs to be implemented. Namely, the corresponding methods in {{PartitionMetaIo}} needs to be implemented.

One complication with this is that group configuration length is not known upfront, so a varlen encoding needs to be used. Also, probably, a bigger complication is that a configuration might not fit in one page.

If we are sure it fill fit one page (still containing the rest partition meta), we can just write it last: first write its length, then the bytes of data.

If we need to make sure we support cases when partition metadata exceeds one page in size, we might add another page type X, store group config in a chain of pages of type X, and put a link to first of them in partition meta page.


> Support group configuration in persistent pagememory-based MvPartitionStorage
> -----------------------------------------------------------------------------
>
>                 Key: IGNITE-18118
>                 URL: https://issues.apache.org/jira/browse/IGNITE-18118
>             Project: Ignite
>          Issue Type: Improvement
>          Components: persistence
>            Reporter: Roman Puchkovskiy
>            Assignee: Roman Puchkovskiy
>            Priority: Major
>              Labels: ignite-3
>             Fix For: 3.0.0-beta2
>
>
> Currently, page-memory-based implementations of {{MvPartitionStorage}} do not store last RAFT group configuration. This needs to be implemented. Namely, the corresponding methods in {{PartitionMetaIo}} should be implemented.
> One complication with this is that group configuration length is not known upfront, so a varlen encoding needs to be used. Also, probably, a bigger complication is that a configuration might not fit in one page.
> If we are sure it fill fit one page (still containing the rest partition meta), we can just write it last: first write its length, then the bytes of data.
> If we need to make sure we support cases when partition metadata exceeds one page in size, we might add another page type X, store group config in a chain of pages of type X, and put a link to first of them in partition meta page.



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