Skip to content
This repository has been archived by the owner. It is now read-only.

Consider moving from master/slave terminology #2

Closed
cllns opened this Issue Dec 16, 2014 · 34 comments

Comments

Projects
None yet
@cllns
Copy link

cllns commented Dec 16, 2014

This seems like an internal tool, but it might be a good idea to change from 'master/slave' to something less problematic.

I'm not familiar with this tool, but primary/replica might work. (or leader/follower)

@steveklabnik @brson, thoughts?

@steveklabnik

This comment has been minimized.

Copy link

steveklabnik commented Dec 16, 2014

Very, very +1

(and primary/replica is my preferred, but just anything other than master/slave)

@brson

This comment has been minimized.

Copy link
Contributor

brson commented Dec 16, 2014

'master' and 'slave' are the buildbot terminology.

@bheesham

This comment has been minimized.

Copy link
Contributor

bheesham commented Jan 7, 2015

Yeah, that would be tricky. You can always fork Buildbot and hope a simple text replacement would work

@tbu-

This comment has been minimized.

Copy link

tbu- commented Feb 4, 2015

@steveklabnik Primary/replica doesn't seem to fit, as there's a controller (the current "master") which completely controls the other instances (the current "slaves"), i.e. they're not replicas of the primary.

@cllns

This comment has been minimized.

Copy link
Author

cllns commented Feb 4, 2015

@tbu- What about leader/follower?

@tbu-

This comment has been minimized.

Copy link

tbu- commented Feb 4, 2015

That sounds better.

@trevrosen

This comment has been minimized.

Copy link

trevrosen commented Feb 4, 2015

I think "leader/follower" works as a pretty much universal replacement for "master/slave". I don't do any Rust at work, but we've started to use this nomenclature for multi-server environments there.

@eevee

This comment has been minimized.

Copy link

eevee commented Feb 4, 2015

uwsgi uses emperor/vassal for some similar feature.

"peon" is a great word too. but then i'm inclined towards colorful names :)

@tonylukasavage

This comment has been minimized.

Copy link

tonylukasavage commented Feb 4, 2015

leader/follower is pretty popular among projects making this particular change.

@samphippen

This comment has been minimized.

Copy link

samphippen commented Feb 4, 2015

@steveklabnik leader/follower seems correct in this case for me.

@coderanger

This comment has been minimized.

Copy link

coderanger commented Feb 4, 2015

For CI stuff in the past I've used "server/worker" or "server/builder".

@jedahan

This comment has been minimized.

Copy link

jedahan commented Feb 4, 2015

leader/follower seems more general than leader/builder

though I like both

@joneslee85

This comment has been minimized.

Copy link

joneslee85 commented Feb 4, 2015

Oh my, please check django/django#2692

@alex

This comment has been minimized.

Copy link

alex commented Feb 4, 2015

coordinator/worker is probably what I'd use if I were building a CI system.

@effigies

This comment has been minimized.

Copy link

effigies commented Feb 4, 2015

Would suggest controller/worker, but +1 to coordinator/worker, too.

@timplunkett

This comment has been minimized.

Copy link

timplunkett commented Feb 4, 2015

Drupal decided on using primary/replica, following Django's lead.

@alex

This comment has been minimized.

Copy link

alex commented Feb 4, 2015

A build system's naming scheme isn't describing the same thing as a
database system; I do think primary/replica is the right naming for
database replication schemes.

On Wed, Feb 4, 2015 at 3:25 PM, Tim Plunkett notifications@github.com
wrote:

Drupal decided on using primary/replica, following Django's lead.


Reply to this email directly or view it on GitHub
#2 (comment)
.

"I disapprove of what you say, but I will defend to the death your right to
say it." -- Evelyn Beatrice Hall (summarizing Voltaire)
"The people's good is the highest law." -- Cicero
GPG Key fingerprint: 125F 5C67 DFE9 4084

@tomburns

This comment has been minimized.

Copy link

tomburns commented Feb 4, 2015

+1 for leader / follower, given the context.

@jjjjw

This comment has been minimized.

Copy link

jjjjw commented Feb 4, 2015

primary/secondary also works, if primary/replica seems weird.

@reaperhulk

This comment has been minimized.

Copy link

reaperhulk commented Feb 4, 2015

http://trac.buildbot.net/ticket/2340 may also be of interest.

@mikeedwards

This comment has been minimized.

Copy link

mikeedwards commented Feb 4, 2015

primary/secondary? That's sort of what mongo does:
http://docs.mongodb.org/manual/core/replication/

Primary and replica would work, too, but that might be too specific in terms of function of the "non-primary" machine. Secondary is nicely general, if that matters.

@tbu-

This comment has been minimized.

Copy link

tbu- commented Feb 4, 2015

@zjjw Your terminology doesn't quite fit, it might fit for databases, but not for build servers.

server/worker might fit.

@cllns

This comment has been minimized.

Copy link
Author

cllns commented Feb 4, 2015

@reaperhulk I was in the process of writing a comment there when you posted the link 👍

@tomjakubowski

This comment has been minimized.

Copy link

tomjakubowski commented Feb 4, 2015

We should avoid using "leader" in upper case or any other context where it could be construed as a title.

@kamalmarhubi

This comment has been minimized.

Copy link

kamalmarhubi commented Feb 4, 2015

slave -> worker above the rest of the suggestions.

Perhaps master is all right with that change, trying to decide for myself.

For the master:

  • leave it as master. Trying to decide for myself if that's all right with slave -> worker
  • coordinator: I think this works well
  • server: I don't know buildbot architecture, but if the 'master' is the process that receives requests and sends them out, 'server' would be all right. If it polls the repo and only manages the workers, then I don't think it fits.
  • leader: leader / follower to me suggest a distributed database or a paxos or raft like replicated state machine.
  • primary: primary / secondary suggest the two components are of the same class, which is not the case.

Edit: ha! Marx's comments on the buildbot ticket are my exact potential issue with master / worker.

@cllns cllns changed the title Consider moving from master/slave Consider moving from master/slave terminology Feb 4, 2015

@colingourlay

This comment has been minimized.

Copy link

colingourlay commented Feb 5, 2015

I'm throwing in gru / minion.

@O-I

This comment has been minimized.

Copy link

O-I commented Feb 5, 2015

I think primary/replica has precedent in replacing master/slave terminology like in the aforementioned Django issue mentioned by @joneslee85, but I find myself more in the leader/follower camp.

If it didn't make things even more confusing, I'd suggest something like yang/yin. 😃

@locks

This comment has been minimized.

Copy link

locks commented Feb 5, 2015

CouchDB also switched to primary / replica, if I remember correctly: https://issues.apache.org/jira/browse/COUCHDB-2248

@crazymykl

This comment has been minimized.

Copy link

crazymykl commented Feb 5, 2015

Although leader/follower looks to be in the lead, I humbly propose exemplar/aspirant.

@Manishearth

This comment has been minimized.

Copy link

Manishearth commented Feb 5, 2015

primary/replica sounds too database-y, and replication isn't exactly what's happening here.

I prefer leader/follower

@lukemayes

This comment has been minimized.

Copy link

lukemayes commented Feb 5, 2015

@tbi- describing the current "master" as a controller made me think controller/drone or controller/worker might be good.

@tomjakubowski

This comment has been minimized.

Copy link

tomjakubowski commented Feb 5, 2015

"Drone" is equally problematic in parts of the world ravaged by US military intervention.

@steveklabnik

This comment has been minimized.

Copy link

steveklabnik commented Feb 5, 2015

Thank you everyone for your suggestions.

Given that we're not a database, I agree that primary/replica doesn't make a lot of sense. But regardless, this really needs to be fixed upstream. Therefore, I'm doing two things:

  1. Closing this in favor of http://trac.buildbot.net/ticket/2340
  2. Working with said upstream to land a patch. I have been emailing with one of the committers about it, and they're favorable to the change, the work just needs done. I plan on implementing leader/follower.

If upstream ends up rejecting this, we can re-open and see what we can do, but for now, dealing with them is the correct course of action.

@dhuseby

This comment has been minimized.

Copy link

dhuseby commented Mar 3, 2015

How about "gun" and "shovel"?

"You see in this world there's two kinds of people, my friend. Those with loaded guns, and those who dig. You dig."
https://www.youtube.com/watch?v=6YnryHbJqC4&t=3m34s

@rust-lang-deprecated rust-lang-deprecated locked and limited conversation to collaborators Jul 23, 2015

HOLYCOWBATMAN referenced this issue in nixxquality/WebMConverter Jul 29, 2015

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
You can’t perform that action at this time.