[
https://issues.apache.org/jira/browse/IGNITE-11089?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ivan Rakov updated IGNITE-11089:
--------------------------------
Description:
We had faced numerous bugs when pages that were initially allocated in
partition X migrated to partition Y (example: IGNITE-8659). Such migration may
cause storage corruption: if partition Y gets evicted, attempt to dereference
link to migrated page will cause error.
We may prevent such situations in general and gain few percent performance
boost at the same time:
1) Locate all links to pages in delta records, including self-links (examples:
InitNewPageRecord#newPageId, PagesListSetNextRecord#nextPageId,
MergeRecord#rightId).
2) Change storing format for such links: save only 6 bytes instead of 8
(without partition ID).
3) In every delta record constructor, assert that link's partition ID is equal
to PageDeltaRecord#pageId. Exception is pages from index partition: they may
refer to pages from other partitions by design.
was:
We had faced numerous bugs when pages that were initially allocated in
partition X migrated to partition Y (example: IGNITE-8659). Such migration may
cause storage corruption: in partition Y gets evicted, attempt to dereference
link to migrated page will cause error.
We may prevent such situations in general and gain few percent performance
boost at the same time:
1) Locate all links to pages in delta records, including self-links (examples:
InitNewPageRecord#newPageId, PagesListSetNextRecord#nextPageId,
MergeRecord#rightId).
2) Change storing format for such links: save only 6 bytes instead of 8
(without partition ID).
3) In every delta record constructor, assert that link's partition ID is equal
to PageDeltaRecord#pageId. Exception is pages from index partition: they may
refer to pages from other partitions by design.
> Get rid of partition ID in intra-partition page links stored in delta records
> -----------------------------------------------------------------------------
>
> Key: IGNITE-11089
> URL: https://issues.apache.org/jira/browse/IGNITE-11089
> Project: Ignite
> Issue Type: Improvement
> Reporter: Ivan Rakov
> Priority: Major
> Fix For: 2.8
>
>
> We had faced numerous bugs when pages that were initially allocated in
> partition X migrated to partition Y (example: IGNITE-8659). Such migration
> may cause storage corruption: if partition Y gets evicted, attempt to
> dereference link to migrated page will cause error.
> We may prevent such situations in general and gain few percent performance
> boost at the same time:
> 1) Locate all links to pages in delta records, including self-links
> (examples: InitNewPageRecord#newPageId, PagesListSetNextRecord#nextPageId,
> MergeRecord#rightId).
> 2) Change storing format for such links: save only 6 bytes instead of 8
> (without partition ID).
> 3) In every delta record constructor, assert that link's partition ID is
> equal to PageDeltaRecord#pageId. Exception is pages from index partition:
> they may refer to pages from other partitions by design.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)