Ivan Rakov created IGNITE-11089:
-----------------------------------

             Summary: 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
             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: 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.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to