tarantool / tarantool/tarantool
swim: support URLs in addition to IPs?
Nobody has claimed this yet.
- Dominant language
- Lua
- Stars
- 3.7k
- Forks
- 419
- Avg merge
- 1d 23h
- Merged PRs (30d)
- 88
Description
In the external membership module it is possible to specify not only IPs but also URLs to bind to, and to disseminate. Would be good to be able to do the same in the core membership module. It should cover all the features of the external membership so as it could be used instead.
In core swim it is easier to support, because nodes are identified by UUID. It means each node can resolve its own URL to an IP, disseminate the IP, and periodically check if the URL has changed to a new IP. When it happens, it simply disseminates its new IP. The other members of the cluster will see the old and the new IP as one instance, because they have the same UUID, so it should work smoothly. IP change is even already supported.
Swim could re-resolve the URL, say, once per 5 seconds default, and expose it as an option.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by comparing the external membership module with the core membership module, focusing on core SWIM's UUID-based node identity, IP dissemination, and existing IP-change handling. Define how URL resolution and its refresh interval should be configured; done means core membership supports URLs, re-resolves them periodically, and disseminates changed IPs without changing node identity.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- lua
- Domain
- distributed-systems, networking
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100