[ https://issues.apache.org/jira/browse/IGNITE-20246?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andrey Mashenkov updated IGNITE-20246: -------------------------------------- Description: *Motivation* As for now, we have IgniteDistribution trait with DistributionFunction inside. In fact, this "function" is a factory for factory for functions, but should be just a logical node. `IgniteDistribution.destination()` method accepts hash-function factory regardless if the function hash-based or not. LogicalRelImplementor could convert this logical node into a physcal node, which can calculates destinations, and make hash function part of this physcal node. *Suggestion* 1. Move `gniteDistribution.destination()` method to some another class, which will be a "destination factory" and e.g. put it into a table instead of `distribution`. 2. Replace HashFunctionFactory with RowHandler in `destination()` method signature. was: Motivation. As for now, we have IgniteDistribution trait with DistributionFunction inside. In fact, this "function" is a factory for factory for functions, but should be just a logical node. `IgniteDistribution.destination()` method accepts hash-function factory regardless if the function hash-based or not. LogicalRelImplementor could convert this logical node into a physcal node, which can calculates destinations, and make hash function part of this physcal node. Let's 1. Move `gniteDistribution.destination()` method to some another class, which will be a "destination factory" and e.g. put it into a table instead of `distribution`. 2. Replace HashFunctionFactory with RowHandler in `destination()` method signature. > Sql. Decouple distribution trait and function. > ---------------------------------------------- > > Key: IGNITE-20246 > URL: https://issues.apache.org/jira/browse/IGNITE-20246 > Project: Ignite > Issue Type: Improvement > Components: sql > Reporter: Andrey Mashenkov > Priority: Major > Labels: ignite-3, tech-debt > Fix For: 3.0.0-beta2 > > > *Motivation* > As for now, we have IgniteDistribution trait with DistributionFunction inside. > In fact, this "function" is a factory for factory for functions, but should > be just a logical node. > `IgniteDistribution.destination()` method accepts hash-function factory > regardless if the function hash-based or not. LogicalRelImplementor could > convert this logical node into a physcal node, which can calculates > destinations, and make hash function part of this physcal node. > *Suggestion* > 1. Move `gniteDistribution.destination()` method to some another class, > which will be a "destination factory" and e.g. put it into a table instead of > `distribution`. > 2. Replace HashFunctionFactory with RowHandler in `destination()` method > signature. -- This message was sent by Atlassian Jira (v8.20.10#820010)