flink-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "godfrey he (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (FLINK-11822) Introduce Flink metadata handlers
Date Tue, 05 Mar 2019 09:44:00 GMT

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

godfrey he updated FLINK-11822:
-------------------------------
    Description: 
Calcite has defined various metadata handlers(e.g. {{RowCoun}}, {{Selectivity}} and provided
default implementation(e.g. {{RelMdRowCount}}, {{RelMdSelectivity}}). However, the default
implementation can't completely meet our requirements, e.g. some of its logic is incomplete,and
some RelNodes  are not considered.
There are two options to meet our requirements:
option 1. Extends from default implementation, overrides method to improve its logic, add
new methods for new {{RelNode}}. The advantage of this option is we just need to focus on
the additions and modifications. However, its shortcomings are also obvious: we have no control
over the code of non-override methods in default implementation classes especially when upgrading
the Calcite version.
option 2. Extends from metadata handler interfaces, reimplement all the logic. Its shortcomings
are very obvious, however we can control all the code logic that's what we want.

so we choose option 2!

In this jira, only basic metadata handles will be introduced, including:
{{FlinkRelMdPercentageOriginalRow}},
{{FlinkRelMdNonCumulativeCost}},
{{FlinkRelMdCumulativeCost}},
{{FlinkRelMdRowCount}},
{{FlinkRelMdSize}},
{{FlinkRelMdSelectivity}},
{{FlinkRelMdDistinctRowCoun}},
{{FlinkRelMdPopulationSize}},
{{FlinkRelMdColumnUniqueness}},
{{FlinkRelMdUniqueKeys}}


  was:
Calcite has defined various metadata handlers(e.g. {{RowCoun}}, {{Selectivity}} and provided
default implementation(e.g. {{RelMdRowCount}}, {{RelMdSelectivity}}). However, the default
implementation can't completely meet our requirements, e.g. some of its logic is incomplete,and
some {{RelNode}}s  are not considered.
There are two options to meet our requirements:
option 1. Extends from default implementation, overrides method to improve its logic, add
new methods for new {{RelNode}}. The advantage of this option is we just need to focus on
the additions and modifications. However, its shortcomings are also obvious: we have no control
over the code of non-override methods in default implementation classes especially when upgrading
the Calcite version.
option 2. Extends from metadata handler interfaces, reimplement all the logic. Its shortcomings
are very obvious, however we can control all the code logic that's what we want.

so we choose option 2!

In this jira, only basic metadata handles will be introduced, including:
{{FlinkRelMdPercentageOriginalRow}},
{{FlinkRelMdNonCumulativeCost}},
{{FlinkRelMdCumulativeCost}},
{{FlinkRelMdRowCount}},
{{FlinkRelMdSize}},
{{FlinkRelMdSelectivity}},
{{FlinkRelMdDistinctRowCoun}},
{{FlinkRelMdPopulationSize}},
{{FlinkRelMdColumnUniqueness}},
{{FlinkRelMdUniqueKeys}}



> Introduce Flink metadata handlers
> ---------------------------------
>
>                 Key: FLINK-11822
>                 URL: https://issues.apache.org/jira/browse/FLINK-11822
>             Project: Flink
>          Issue Type: New Feature
>          Components: API / Table SQL
>            Reporter: godfrey he
>            Assignee: godfrey he
>            Priority: Major
>
> Calcite has defined various metadata handlers(e.g. {{RowCoun}}, {{Selectivity}} and provided
default implementation(e.g. {{RelMdRowCount}}, {{RelMdSelectivity}}). However, the default
implementation can't completely meet our requirements, e.g. some of its logic is incomplete,and
some RelNodes  are not considered.
> There are two options to meet our requirements:
> option 1. Extends from default implementation, overrides method to improve its logic,
add new methods for new {{RelNode}}. The advantage of this option is we just need to focus
on the additions and modifications. However, its shortcomings are also obvious: we have no
control over the code of non-override methods in default implementation classes especially
when upgrading the Calcite version.
> option 2. Extends from metadata handler interfaces, reimplement all the logic. Its shortcomings
are very obvious, however we can control all the code logic that's what we want.
> so we choose option 2!
> In this jira, only basic metadata handles will be introduced, including:
> {{FlinkRelMdPercentageOriginalRow}},
> {{FlinkRelMdNonCumulativeCost}},
> {{FlinkRelMdCumulativeCost}},
> {{FlinkRelMdRowCount}},
> {{FlinkRelMdSize}},
> {{FlinkRelMdSelectivity}},
> {{FlinkRelMdDistinctRowCoun}},
> {{FlinkRelMdPopulationSize}},
> {{FlinkRelMdColumnUniqueness}},
> {{FlinkRelMdUniqueKeys}}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message