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

Mirza Aliev updated IGNITE-18955:
---------------------------------
    Description: 
{*}Motivation{*}:

We need to be able to use filters when data nodes are recalculated 

*Definition of done:*
 * Filters are applied when data nodes are recalculated 

*Implementation details:*

When we write data nodes to metastorage, we extend existing Map with data nodes 
and instead of saving only nodes' names, we store new structure called 
{{NodeWithAttributes}}, where we store name and attributes of the node. 
Currently, when we read data nodes, we convert existing map with node counters 
to a Set of nodes, which counters are more than 0. Now we also will apply 
filter, so as a result data nodes will be filtered with the according filter.




  was:
{*}Motivation{*}:

We need to be able to use filters when data nodes are recalculated 

*Definition of done:*
 * Filters are applied when data nodes are recalculated 

*Implementation details:*

After the parsing phase, the expression can be converted to a condition for the 
filter from the Java Stream API. This filtering can be performed on a set of 
nodes’ attributes. This set could be retrieved from the CMG, we just need 
consistentIds of nodes.
After that we need to use this filter when we write data nodes to metastore, 
there are few places, where we do that
* {{DistributionZoneManager#saveDataNodesToMetaStorageOnScaleUp}}
* {{DistributionZoneManager#saveDataNodesToMetaStorageOnScaleDown}}
* {{DistributionZoneManager#saveDataNodesAndUpdateTriggerKeysInMetaStorage}}





> Add the ability to use filters when data nodes are calculated
> -------------------------------------------------------------
>
>                 Key: IGNITE-18955
>                 URL: https://issues.apache.org/jira/browse/IGNITE-18955
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Mirza Aliev
>            Assignee: Mirza Aliev
>            Priority: Major
>              Labels: ignite-3
>
> {*}Motivation{*}:
> We need to be able to use filters when data nodes are recalculated 
> *Definition of done:*
>  * Filters are applied when data nodes are recalculated 
> *Implementation details:*
> When we write data nodes to metastorage, we extend existing Map with data 
> nodes and instead of saving only nodes' names, we store new structure called 
> {{NodeWithAttributes}}, where we store name and attributes of the node. 
> Currently, when we read data nodes, we convert existing map with node 
> counters to a Set of nodes, which counters are more than 0. Now we also will 
> apply filter, so as a result data nodes will be filtered with the according 
> filter.



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

Reply via email to