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

Aleksandr Polovtsev reassigned IGNITE-22050:
--------------------------------------------

    Assignee: Aleksandr Polovtsev  (was: Ivan Bessonov)

> Data structures don't clear partId of reused page
> -------------------------------------------------
>
>                 Key: IGNITE-22050
>                 URL: https://issues.apache.org/jira/browse/IGNITE-22050
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Ivan Bessonov
>            Assignee: Aleksandr Polovtsev
>            Priority: Major
>              Labels: ignite-3
>             Fix For: 3.0.0-beta2
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> In current implementation we use a single reuse list for all partitions in 
> aimem storage engine.
> That works fine in Ignite 2, but here in Ignite 3 we implemented a 
> "partitilnless link" format for eliminating 2 bytes, that indicate partition 
> number, from the data in pages. This means that if allocator provided the 
> structure with the page from partition X, but the structure itself represents 
> partition Y, we will lose the "X" in the process and next time will try 
> accessing the page by the pageId that has Y encoded in it. This would lead to 
> pageId mismatch.
> We have several options here.
>  * ignore mismatched partitions
>  * get rid of partitionless pageIds
>  * fix the allocator, so that it would change partition Id upon allocation
> Ideally, we should go with the 3rd option. It requires some slight changes in 
> internal data structure API, so that we would pass the required partitionId 
> directly into the allocator (reuse list). This is a little bit excessive at 
> first sight, but seems more appropriate in a long run. Ignite 2 pageIds are 
> all messed up inside of structures, we can fix that.



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

Reply via email to