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

[DSIP-17][Feature][Registry] Support etcd as registry #8975

Closed
2 of 3 tasks
Tracked by #14102
ruanwenjun opened this issue Mar 17, 2022 · 10 comments · Fixed by #10981
Closed
2 of 3 tasks
Tracked by #14102

[DSIP-17][Feature][Registry] Support etcd as registry #8975

ruanwenjun opened this issue Mar 17, 2022 · 10 comments · Fixed by #10981
Assignees
Labels
backend DSIP feature new feature gsoc release cherry-pick Mark this issue/PR had cherry-pick for release version
Milestone

Comments

@ruanwenjun
Copy link
Member

Search before asking

  • I had searched in the issues and found no similar feature requirement.

Description

Right now, we use zookeeper as registry and store metadata of master and worker.

We have already implemented the registry plug-in architecture, it's time to support etcd as a new registry plugin choose. This can help user who only familiar with etcd to use dolphinscheduler.

I want to make this feature as a task in GSOC 2022. @caishunfeng

Use case

No response

Related issues

No response

Are you willing to submit a PR?

  • Yes I am willing to submit a PR!

Code of Conduct

@ruanwenjun ruanwenjun added feature new feature Waiting for reply Waiting for reply and removed Waiting for reply Waiting for reply labels Mar 17, 2022
@EricJoy2048
Copy link
Member

That's great!

@txfs19260817
Copy link

txfs19260817 commented Apr 3, 2022

Hello everyone, I would like to contribute to this project for GSoC 2022. Is this still open?

About me: my name is Zishuo Ding and I am currently a graduate student at CMU. I have some experience in both working and contributing to open source.

Thank you!

@ruanwenjun
Copy link
Member Author

Hello everyone, I would like to contribute to this project for GSoC 2022. Is this still open?

About me: my name is Zishuo Ding and I am currently a graduate student at CMU. I have some experience in both working and contributing to open source.

Thank you!

Hi Zishuo, this project is still open now, you can follow the GSOC process to apply.

@ruanwenjun ruanwenjun added the gsoc label Apr 4, 2022
@ruanwenjun
Copy link
Member Author

ruanwenjun commented Apr 12, 2022

@txfs19260817 Hi, zishuo, it's time to submit a proposal on gsoc site, don't forget.

@txfs19260817
Copy link

Dear mentor @ruanwenjun , apologies for the delayed response, because I am now overburdened with exams and assignments. I've started a discussion on the slack channel #gsoc. I'm hoping we can exchange some information on this project, proposal and other things linked to it. Thanks!

@caishunfeng
Copy link
Contributor

Hi @txfs19260817 welcome to join this feature.

@remjacob
Copy link

It's great. We are waiting this feature!

@wjf222
Copy link
Contributor

wjf222 commented Jul 14, 2022

Design

CRUD

Etcd is a distributed key-value storage system which support CRUD originally.
For some temp keys which need to be deleted on discoonect. we can grant leases for keys from etcd cluster.When a key is attached to a lease, its lifetime is bound to the lease's lifetime which in turn is governed by a time-to-live(TTL).Once a lease's TTL elapses, the lease expires and all attached keys are deleted.Applications can keep a lease alive by refreshing its TTL so it does not expire. By lease and keepalive, we can make sure the key will exist when the client disconnect, the lease will delete.

Subscribe/Notify

There is a watchClient in etcd to monitor changes to keys. When a watch response coming,the listener will notify.

Lock

Etcd Lock uses a lease on a key which is revoked when the lock is reased.If the server the lock is running on dies, or the network is disconnected, etcd will time out the lock.

ConnectionStateListener

We get Client's shared channel by reflect, becase all fields is private on jetcd.
There will be a scheduler thread, if the channel state has changed, then is will trigger the connection listener.

@caishunfeng
Copy link
Contributor

@ruanwenjun maybe we should take a DSIP of registry, and this issue as the sub issue of it, WDYT?

@ruanwenjun
Copy link
Member Author

@ruanwenjun maybe we should take a DSIP of registry, and this issue as the sub issue of it, WDYT?

Agree with you, but I just add DSIP label for this issue, I think we need to create a ISSUE to collect all DSIP.

@zhongjiajie zhongjiajie changed the title [Feature][Registry] Support etcd as registry [DSIP-11][Feature][Registry] Support etcd as registry Jul 28, 2022
@caishunfeng caishunfeng added this to the 3.1.0 milestone Sep 17, 2022
@caishunfeng caishunfeng added the release cherry-pick Mark this issue/PR had cherry-pick for release version label Sep 17, 2022
@zhongjiajie zhongjiajie changed the title [DSIP-11][Feature][Registry] Support etcd as registry [DSIP-17][Feature][Registry] Support etcd as registry May 15, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backend DSIP feature new feature gsoc release cherry-pick Mark this issue/PR had cherry-pick for release version
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants