Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature] Support equals()&hashcode() in FlinkTableSinkBase #4577

Open
2 tasks done
xiangyuf opened this issue Nov 23, 2024 · 3 comments
Open
2 tasks done

[Feature] Support equals()&hashcode() in FlinkTableSinkBase #4577

xiangyuf opened this issue Nov 23, 2024 · 3 comments
Assignees
Labels
enhancement New feature or request

Comments

@xiangyuf
Copy link
Contributor

Search before asking

  • I searched in the issues and found nothing similar.

Motivation

When using partial-update merge-engine, we want to reuse sink node across multiple datastreams. To achieve this, we need to override equals() for Paimon DynamicTableSink.

Solution

No response

Anything else?

No response

Are you willing to submit a PR?

  • I'm willing to submit a PR!
@xiangyuf xiangyuf added the enhancement New feature or request label Nov 23, 2024
@JingsongLi
Copy link
Contributor

The idea is good, we plan to do this but always no time... Feel free to open PR

@xintongsong
Copy link
Contributor

@xiangyuf
Reusing sink node for partial-update is a good idea. We have an internally solution for this. Contributing it to the community requires opening a FLIP in the Flink community, which as Jingsong said we just couldn't find time for. If you're interested, we can share that solution with you and see if we can cooperate on that.

As far as I can see, one thing different from your plan is that, our solution does not rely on equals() && hashcode() of FlinkTableSinkBase, but would use some public fields of the sink nodes to identify those that can be reused. The benefit is that, this feature can be enabled for any connector, without relying on the connector codes to implement equals() && hashcode().

@xiangyuf
Copy link
Contributor Author

@xiangyuf Reusing sink node for partial-update is a good idea. We have an internally solution for this. Contributing it to the community requires opening a FLIP in the Flink community, which as Jingsong said we just couldn't find time for. If you're interested, we can share that solution with you and see if we can cooperate on that.

As far as I can see, one thing different from your plan is that, our solution does not rely on equals() && hashcode() of FlinkTableSinkBase, but would use some public fields of the sink nodes to identify those that can be reused. The benefit is that, this feature can be enabled for any connector, without relying on the connector codes to implement equals() && hashcode().

@xintongsong Thx for ur reply. I'd like to hear your internal solution.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants