5 ms·
Based on the design[1], it has a leader / follower pattern (although you should have multiple leaders with Raft consensus to avoid having a single point of fail
by espadrine 10y ago
Based on the design[1], it has a leader / follower pattern (although you should have multiple leaders with Raft consensus to avoid having a single point of failure), where the leader is called "nameserver" and decides where to put each piece of data and metadata among a set of chunk servers and metadata servers.
That design is very reminiscent of CephFS's cluster monitors, metadata servers, object storage devices.
[1]: https://github.com/baidu/bfs/blob/master/docs/design.md https://github.com/baidu/bfs/blob/master/docs/design.md, https://github.com/baidu/bfs/blob/master/docs/BFS_design.md https://github.com/baidu/bfs/blob/master/docs/BFS_design.md
- WeaselNo7 10y agoI thought Raft was always-single-leader? Followers can happily become leaders through elections?
- espadrine 10y agoSorry, ambiguous choice of term. The set of nameservers "lead" the rest of the server cluster. Within the set of nameservers, they make decisions by electing a leader among them.
- ergo14 10y agowhat is the leader/follower pattern? Something like master/slave approach?
- kuschku 10y agoLeader/Follower is actually something entirely different, but the linked chinese document talks about a master/client approach. Sadly, in the past years, due to some political movements, the term "master/slave" has been declared problematic, and GitHub actively warns that projects using such language can and will be excluded from the service. There have been previous discussions about this on HN.
- Cyph0n 10y agoWow, that's very interesting. I thought GitHub delegates moderation to the repo owners. There was actually a huge debate about this on Reddit caused by Swift merging a rename change PR into master. The Swift team was so excited about the change for some reason that they didn't even run tests before the merge...
- ergo14 10y agoDo you have a link for that? I don't follow swift development and I'm unsure what they actually changed. Rename of what?
- Cyph0n 10y agoChanging variable names using master/slave to leader/follower. Here's my comment from the thread: https://reddit.com/r/ProgrammerHumor/comments/3veu2t/comment/cxn12gl https://reddit.com/r/ProgrammerHumor/comments/3veu2t/comment... The rest of the discussion is a good read too.
- kuschku 10y agoAs I mentioned in other subthreads (sadly I can’t edit the original comment anymore, so I have to duplicate content), there is this very famous example of several repos getting banned, and another getting threatened to be banned, for using the word "retard": https://news.ycombinator.com/item?id=9966118 https://news.ycombinator.com/item?id=9966118
- ergo14 10y agoGithub says that? Can you share a link? I thought moderation is up to users unless someone is actually abusing the service.
- kuschku 10y agoRead this case, for example: https://news.ycombinator.com/item?id=9966118 https://news.ycombinator.com/item?id=9966118
- omginternets 10y agoIt's the PC version of master/slave. See [0] for the original madness... [0] https://github.com/antirez/redis/issues/3185 https://github.com/antirez/redis/issues/3185
- idealpersona 10y agoGood fucking god. This is insane. And anyone who opposed the the proposal, even while pointing out the fallacy of the core idea, got downvoted to hell too. This gives me a lot of context for what I saw in the last season of South Park.
- kuschku 10y agoEven worse, look at GitHub banning repos for using offensive words: https://news.ycombinator.com/item?id=9966118 https://news.ycombinator.com/item?id=9966118
- placeybordeaux 10y agoantirez handled that pretty well.
- omginternets 10y agoYeah, I'd say so too. IMHO I think it was a mistake to use the docs for political purposes, mostly because doing so lends legitimacy to issue. Where I think he did well was in de-escalating tension.