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