ignite-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ivan Rakov (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (IGNITE-11089) Get rid of partition ID in intra-partition page links stored in delta records
Date Fri, 25 Jan 2019 13:07:00 GMT

     [ 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)

Mime
View raw message