[
https://issues.apache.org/jira/browse/IGNITE-21718?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Aleksandr Polovtcev updated IGNITE-21718:
-----------------------------------------
Description:
{{AbstractPageMemoryMvPartitionStorage}} contains a bunch of volatile fields
that get replaced during a rebalance cleanup. I propose to wrap this fields in
a single class in order to make the code a little bit more maintainable. I see
the following benefits:
# It will become easy to understand, what components of the storage may be
updated;
# It will be easier to add more volatile components and not forget to update
them;
# It will become easier to avoid unnecessary volatile reads, because the whole
state can be fetched using a single read.
The only downside I can see is that the code may become a little bit more
verbose, because you will need to access the state class first.
> Extract volatile state in AbstractPageMemoryMvPartitionStorage into a
> separate class
> ------------------------------------------------------------------------------------
>
> Key: IGNITE-21718
> URL: https://issues.apache.org/jira/browse/IGNITE-21718
> Project: Ignite
> Issue Type: Improvement
> Reporter: Aleksandr Polovtcev
> Assignee: Aleksandr Polovtcev
> Priority: Minor
> Labels: ignite-3
>
> {{AbstractPageMemoryMvPartitionStorage}} contains a bunch of volatile fields
> that get replaced during a rebalance cleanup. I propose to wrap this fields
> in a single class in order to make the code a little bit more maintainable. I
> see the following benefits:
> # It will become easy to understand, what components of the storage may be
> updated;
> # It will be easier to add more volatile components and not forget to update
> them;
> # It will become easier to avoid unnecessary volatile reads, because the
> whole state can be fetched using a single read.
>
> The only downside I can see is that the code may become a little bit more
> verbose, because you will need to access the state class first.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)