Kubernetes: Please consider changing the name of PetSet before General Availability

46

I brought this up back when PetSet was just a proposal, but it didn't get much response. At the risk of being labeled or dismissed as an "SJW" or "preachy vegan," or of stirring up drama, please hear me out:

The name PetSet is derived from the common metaphor in infrastructure of "pets vs. cattle." The metaphor encourages infrastructure developers to think of cloud servers as anonymous and fungible resources rather than things to be manually managed by a person. The implication is that instead of treating a server like a pet, which you take care of and treat when it becomes sick, you simply destroy the server and replace it with a new one, as a cattle rancher would simply kill an animal that didn't serve its economic purpose to the rancher. The pet has a personal and emotional value to you, but the cattle is just a commodity.

The lesson in infrastructure here is quite a good one, and its value should be preserved, but using this particular metaphor is quite unfortunate, because it perpetuates the belief that the life and well being of an animal has value only in relation to its value to humans.

This may seem like making a mountain out of a molehill, but try to think about how our language perpetuates our culture and our beliefs. Try to think about it in the context of how future generations will see it. In the same way that homophobic or racist language was (and in some cases still is) commonplace and accepted in days past, in the modern world we generally recognize this language as unacceptable because it promotes a negative world view that we have progressed past. Imagine how angry people would be if this feature were called "WifeSet" and the analogy were "wives vs. bar hook-ups." We're in an era of increasing empathy, and that empathy is not bounded only to other humans. It affects any being that can feel pain, sadness, or loss, like we can.

While I don't claim to have a perfect substitute for this analogy that might replace PetSet, the one I have been using myself is to compare the role of owning a car vs using a taxi or ridesharing service. When you own a car, it is your personal possession. You take care of it. You keep it fueled, cleaned, and maintained in good shape. When it breaks, you get it fixed. In contrast, a taxi or ridesharing service is using a car as a fungible resource. You hail one only when you need the service it provides, and you use it only as long as you require that service. You don't care which car picks you up, or who is driving it, as long as it is fulfills the service. So my own suggestion for a replacement for PetSet is CarSet. If someone has a better idea that seems to "click" with people more, all the better. And of course, the feature could be named something more general—it doesn't have to use an analogy. (I recall that originally "NominalSet" was being considered.)

This issue is not about me or anyone else being "offended," or requesting that the name be changed to CarSet specifically—it's just asking specifically not to invoke the pets vs. cattle metaphor in the name of this feature.

Thank you very much for considering this.

For context, here is my previous comment from back in the proposal phase.

jimmycuadra picture jimmycuadra  ·  15 Jun 2016

Most helpful comment

24

We can publish options for discussion here. Instead of using metaphors, which can have unintended meaning, let's try a descriptive name. Should ideally be easy to understand for someone with a Linux background. Throwing out some options.

  • PersistentSet
  • StatefulSet or StateSet
  • PermanentSet
  • StickySet
  • BindSet
  • NamedSet
  • SavedSet
  • StoredSet
  • SequentialSet
  • OrderedSet
apsinha picture apsinha  ·  9 Jul 2016

All comments

9

Thanks for speaking up - we will definitely take this into the discussions in the community before this feature moves out of alpha.

smarterclayton picture smarterclayton  ·  15 Jun 2016
10

Agree. We went with PetSet as a working name in part because we knew it could never be the "real" name, but we didn't have a good name for the concept yet. Names hold power, so we want to be careful to find something thta captures the problem well. Having a first impl of the solution will help refine the problem statement, too.

thockin picture thockin  ·  16 Jun 2016
2

@thockin I kinda like it ... and it may be a bit too late. Lots of press about Pet Set already.

chrislovecnm picture chrislovecnm  ·  8 Jul 2016
0

Yeah, I may have misunderstood what was meant by changing it before coming out of alpha. To some extent I think the damage is already done now.

jimmycuadra picture jimmycuadra  ·  8 Jul 2016
1

Blame me 👍 One good thing ... memorable names stick. Can we close this?

chrislovecnm picture chrislovecnm  ·  8 Jul 2016
0

I'd still like the team to consider changing it.

jimmycuadra picture jimmycuadra  ·  9 Jul 2016
0

I think we really should consider changing it. Silly names do stick, but
they are silly.

On Fri, Jul 8, 2016 at 3:32 PM, Jimmy Cuadra [email protected]
wrote:

I'd still like the team to consider changing it.


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/kubernetes/kubernetes/issues/27430#issuecomment-231488356,
or mute the thread
https://github.com/notifications/unsubscribe/AFVgVBuirVkIDHfQI-HFkCjtIW2HTO5Eks5qTtAUgaJpZM4I2SIQ
.

thockin picture thockin  ·  9 Jul 2016
0

@thockin we have videos on YouTube, blog posts, tweet, LinkedIn stuff and presentations at conferences, and many many decks with that content. You want to do the rebranding??? It is a big problem to change at this point...

chrislovecnm picture chrislovecnm  ·  9 Jul 2016
0

Let's just leave it on the table. I suspect neither of us have marketing
degrees :)

On Fri, Jul 8, 2016 at 3:55 PM, Chris Love [email protected] wrote:

@thockin https://github.com/thockin we have videos on YouTube, blog
posts, tweet, LinkedIn stuff and presentations at conferences, and many
many decks with that content. You want to do the rebranding??? It is a big
problem to change at this point...


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/kubernetes/kubernetes/issues/27430#issuecomment-231491609,
or mute the thread
https://github.com/notifications/unsubscribe/AFVgVBTK9YYIsKyZzshvi2EN0Ihg4mpuks5qTtVZgaJpZM4I2SIQ
.

thockin picture thockin  ·  9 Jul 2016
4

I'm 100% ok with renaming, and don't feel like there's any pain in doing so. However, CarSet does not feel like a fit.

For any who would like name change, please voice here. We'll bring this up at the community meeting next week, and I'd like to settle on a new name by August 1.

aronchick picture aronchick  ·  9 Jul 2016
0

Re-quoting myself for emphasis:

Imagine how angry people would be if this feature were called "WifeSet" and the analogy were "wives vs. bar hook-ups."

If the name were something that was seen more universally as unacceptable, I don't think "people already started using the term in social media, oh well, let's keep it" would be an acceptable attitude. The fact that it's already out there doesn't mean there's no value in changing it. If having a reference to something out in the wild meant you couldn't change it in the future, we wouldn't have things like changelogs and semantic versioning.

jimmycuadra picture jimmycuadra  ·  9 Jul 2016
0

CarSet does not have any relevance in tech, can we come up with something techy or ship like? I am sorta on the side of not changing it, but we need a good name. If we do change it we gotta change it quite quickly. People will have PetSet in production very quickly if not now. Changing code because a team chooses to change branding probably will not make people happy.

chrislovecnm picture chrislovecnm  ·  9 Jul 2016
2

Let's be sure to separate this out into two discussions - deciding on a
change, vs the naming process. We already have a pattern to deal with the
later, but getting the general agreement in the community that the name
should be changed probably is what we want to stay focused on for now.

On Fri, Jul 8, 2016 at 7:34 PM, Chris Love [email protected] wrote:

CarSet does not have any relevance in tech, can we come up with something
techy or ship like? We can change it, but we need a good name.


You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/kubernetes/kubernetes/issues/27430#issuecomment-231496684,
or mute the thread
https://github.com/notifications/unsubscribe/ABG_p6EaIMrNm-DoYJkeq0YI_i9vNPoeks5qTt5ygaJpZM4I2SIQ
.

smarterclayton picture smarterclayton  ·  9 Jul 2016
1

@chrislovecnm

I'm not bound to CarSet (though PetSet doesn't have any "relevance in tech" either)—I was just offering a suggestion that used a similar metaphor, so as not to simply ask the team to do something without offering a possible way to do it. People who have worked on the feature or been involved in its design discussions will probably have better ideas, since they have the best understanding of the use cases for the feature.

jimmycuadra picture jimmycuadra  ·  9 Jul 2016
0

Just stumbled on this thread...adding my $0.02.

  1. Naming IS HARD!!! I've named dozens of products, features and even companies and its never been a quick or simple process.
  2. Everyone has an opinion. 100% certain there will be someone that does't like a name.
  3. Getting everyone to agree on a name shouldn't be a requirement
  4. Very hard to re-name something once it has any kind of name recognition.

As for PetSets in particular, I think it's a pretty good name. Both informative and evocative (IMO in a good way), which are two of the most important aspects of a name.

That said, its really the name of one of several similar kind of features. And within this broader context it lacks the consistency you'd expect across similar things. Don't have any of the history, but I thought Replication Controllers were renamed to Replica Sets to introduce the idea of Sets which could then be applied to different kinds of sets (i.e. PetSets). But as a group, these two names seem random and they miss the opportunity to apply further consistency across Sets (i.e. one name is literal, the other analogous).

Also, will there be other kinds of Sets? If not, then random is probably OK. But if there will be more kinds of Sets, then the next one would also have to be random since you definitely shouldn't have two 'literal' names with another that is 'analogous'. That would just make PetSets seem too casual and not serious.

chrismarino picture chrismarino  ·  9 Jul 2016
0

FamilialSet would get the same idea across. Each member of a family is
special, cares about its peers, and often has a particular role, and
everyone mourns the loss of any one member.

Or something similar like KinSet or KindredSet

On Friday, July 8, 2016, chrismarino [email protected] wrote:

Just stumbled on this thread...adding my $0.02.

  1. Naming IS HARD!!! I've named dozens of products, features and even
    companies and its never been a quick or simple process.
  2. Everyone has an opinion. 100% certain there will be someone that
    does't like a name.
  3. Getting everyone to agree on a name shouldn't be a requirement
  4. Very hard to re-name something once it has any kind of name
    recognition.

As for PetSets in particular, I think it's a pretty good name. Both
informative and evocative (IMO in a good way), which are two of the most
important aspects of a name.

That said, its really the name of one of several similar kind of features.
And within this broader context it lacks the consistency you'd expect
across similar things. Don't have any of the history, but I thought
Replication Controllers were renamed to Replica Sets to introduce the idea
of Sets which could then be applied to different kinds of sets (i.e.
PetSets). But as a group, these two names seem random and they miss the
opportunity to apply further consistency across Sets (i.e. one name is
literal, the other analogous).

Also, will there be other kinds of Sets? If not, then random is probably
OK. But if there will be more kinds of Sets, then the next one would also
have to be random since you definitely shouldn't have two 'literal' names
with another that is 'analogous'. That would just make PetSets seem too
casual and not serious.


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/kubernetes/kubernetes/issues/27430#issuecomment-231509945,
or mute the thread
https://github.com/notifications/unsubscribe/AF8dbAUKi4ViTRaqwYcqrOnj9x7Ny8hWks5qTwgzgaJpZM4I2SIQ
.

derekwaynecarr picture derekwaynecarr  ·  9 Jul 2016
1

JetSet seems fitting (and one letter off). Besides relating the term "jet set", a JetSet is composed of Jets, which should be handled with care

jaycoon picture jaycoon  ·  9 Jul 2016
1

The name PetSet is derived from the common metaphor in infrastructure of "pets vs. cattle."

The name petset is derived from the fact that I care about my pets, regardless of what anyone else thinks about their cattle. Cattle are sacred in some places, food in others, and I view that as a culture difference. I won't use pets vs cattle to explain this feature where I'm from, but pets vs servers works just as well :)

bprashanth picture bprashanth  ·  9 Jul 2016
0

@bprashanth

That's a fair point. Pets have value whether or not they are compared to something else. But the usage of the term in Kubernetes is not without context: Pets vs cattle is a metaphor very commonly used in writing about modern infrastructure. A quick Google search even brings up usage of the term in Kubernetes's own blog. It seems to sidestep the issue I'm trying to address to suggest that the term has no prior meaning in this area of our industry. There are an infinite number of things this feature could be called. Surely there is something that would work that doesn't use this metaphor.

jimmycuadra picture jimmycuadra  ·  9 Jul 2016
24

We can publish options for discussion here. Instead of using metaphors, which can have unintended meaning, let's try a descriptive name. Should ideally be easy to understand for someone with a Linux background. Throwing out some options.

  • PersistentSet
  • StatefulSet or StateSet
  • PermanentSet
  • StickySet
  • BindSet
  • NamedSet
  • SavedSet
  • StoredSet
  • SequentialSet
  • OrderedSet
apsinha picture apsinha  ·  9 Jul 2016
2

I think that's a good initial set of names (pun intended). I don't think we're too late to change it, as others have pointed out. Yes, there are videos and other materials out there, but it will only get worse with time. If the community agrees that this is a worthwhile thing to do, it should act quickly, otherwise we end up with fuzzy transitions like the one from Replication Controllers to Deployments and Replica Sets.

If we can come up with and agree on API method and parameter names we can certainly converge on object names like these. I find several of the ones proposed by @apsinha to be simple and self-explanatory. I personally think the first two work well: PersistentSet or StatefulSet, as opposed to EphemeralSet.

ikester picture ikester  ·  9 Jul 2016
0

My $0.02 vote from Aparna's excellent list:

  • NamedSet
  • PersistentSet

On the crazy idea side:

  • Snowflake Set
  • Borg Set (like "I am 7 of 9")

I was never fond of PetSet - only for the reason that it is not obvious what it is on its face, and breaks with the obvious naming we have across the product. A "ReplicaSet" is, plainly, a set of replicas. A "Deployment" is ... well ... a deployment. Etc.

The word I'm looking for here is "what is the opposite of a bunch of exact replicas, each of which are unique in some way, but still have some similarity as a group." Maybe I'm coming around to Family/FamilialSet. Or ClusterSet?

aronchick picture aronchick  ·  9 Jul 2016
0

Aparna's list is great. My favorite of the bunch is StatefulSet, since the term "stateful application" is used in the container world and should be pretty easily understood. In discussion of container orchestration systems, you'll often hear people ask, "Great, but how does it handle stateful apps?" In a similar way to how the other ThingSets are sets of Things, a StatefulSet is a set of stateful pods/apps. It could even be more explicit: StatefulPodSet.

jimmycuadra picture jimmycuadra  ·  9 Jul 2016
0

FamilySet probably fails the "is a recognizable term for describing the
concept at play", and is also redundant (a family is another way of saying
"set of humans with shared responsibilities for raising biological
offspring", so "a set set").

The distinguishing characteristics of the use case for this object is:

  1. To preserve individual identity for fungible entities
  2. To provide predictable ordering and control as those entities change
  3. To enable the software entities to identify and recognize the other
    entities by those identities
  4. To get access to a consistent storage mechanism (because their identity
    also corresponds to data)

Sequence and ordering are relevant, but not strictly necessary (in the
future we will probably introduce other naming and ordering schemes, which
may prevent sequential / ordered from being accurate). State (or at least,
storage) is _not_ required, although I agree that in practice most of the
use of this set would be for stateful services.

On Sat, Jul 9, 2016 at 4:13 PM, Jimmy Cuadra [email protected]
wrote:

Aparna's list is great. My favorite of the bunch is StatefulSet, since the
term "stateful application" is used in the container world and should be
pretty easily understood. In discussion of container orchestration systems,
you'll often hear people ask, "Great, but how does it handle stateful
apps?" In a similar way to how the other ThingSets are sets of Things, a
StatefulSet is a set of stateful pods/apps.


You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/kubernetes/kubernetes/issues/27430#issuecomment-231553485,
or mute the thread
https://github.com/notifications/unsubscribe/ABG_p70Vk4nzeRuWE33mk6FLvxikbTlSks5qUADNgaJpZM4I2SIQ
.

smarterclayton picture smarterclayton  ·  9 Jul 2016
1

It's hard to pick a name that doesn't extol any single feature of petset (such as state, persistence, ordering, ordinality, name, sequence). This is one feature we built in reverse, by prototyping a bunch of applications that didn't fit in any existing bucket and formalizing their requirements into an api.

This process is sometimes called domain modelling, and the number of things required by this domain is > 1 word. We faced a similar dilemma choosing its api-group. I think "is a recognizable term for describing the concept at play" might be a trap, and we just need to call it a word that makes people think of the domain.

bprashanth picture bprashanth  ·  10 Jul 2016
0

Aparna's list is awesome!
My $0.02 vote is:

  • PersistentSet
  • NamedSet
  • OrderedSet

We should consider primary use-cases of PetSet to choose name http://kubernetes.io/docs/user-guide/petset/#when-to-use-pet-set

minhchuduc picture minhchuduc  ·  10 Jul 2016
5

Here are a few more options:

  • DistinctSet
  • UniqueSet
  • SuiSet (stateful uniquely identifiable; also a play on _sui generis_)
  • PetSet, redefined as an abbreviation/backronym of _PersistentSet_ ("Pe't")
Lukenickerson picture Lukenickerson  ·  11 Jul 2016
0

PetSet, redefined as an abbreviation/backronym of PersistentSet ("Pe't")

I like this @Lukenickerson

jaycoon picture jaycoon  ·  11 Jul 2016
0

So the features of Pet Set are based on identity and don't have to include Data existence. I can have a stateless Pet Set of an application that required known identity for quorum. I would ask to stay away from names that include references to other components like Persistent Volumes when you don't need a PV for a Pet Set.

But back to @smarterclayton's point, should we focus on if we want to change the name to what the name should be on this issue? @smarterclayton you mentioned that we have a procedure for naming stuff?

chrislovecnm picture chrislovecnm  ·  11 Jul 2016
0

I had suggested splitting so that we'd have a discussion about the bits
independently, but I think it's fine to continue proposing ideas here.

Generally this would go through the proposal process - we'd identify a list
of names, people would register objections to the names, and then given the
list of candidates try and remove outcomes that don't measure up based on
the objections. Once we've gone through that round, assuming we have a
number of candidates that people feel strongly about, we'd try to refine
them with general agreement amongst the API and proposal reviewers (with
the API reviewers being final deciders).

I'd probably argue that getting this name right is extremely important -
important enough that we want to find a name that is good enough that all
disagreement is resolved through strong arguments for why a name is best

  1. It succinctly describes the core goal
  2. It is recognizable to a layman in the "systems administration" or "web
    software" fields as matching that core goal, and it would be best if
    explaining it can be done by simple analogy to something those users are
    already familiar with
  3. It ends with *Set
  4. We prefer descriptive names over "cute" names inasmuch as we're trying
    to describe a core pattern vs creating marketing material, keeping in mind
    patterns that can't be explained easily aren't good patterns.

I think most of those have already been stated here, and if folks want to
continue brainstorming here please do so.

On Mon, Jul 11, 2016 at 1:51 PM, Chris Love [email protected]
wrote:

So the features of Pet Set are based on identity and don't have to include
Data existence. I can have a stateless Pet Set of an application that
required known identity for quorum. I would ask to stay away from names
that include references to other components like Persistent Volumes when
you don't need a PV for a Pet Set.

But back to @smarterclayton https://github.com/smarterclayton's point,
should we focus on if we want to change the name to what the name should be
on this issue? @smarterclayton https://github.com/smarterclayton you
mentioned that we have a procedure for naming stuff?


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/kubernetes/kubernetes/issues/27430#issuecomment-231811578,
or mute the thread
https://github.com/notifications/unsubscribe/ABG_p62jIalGbdkOetp_CIDUuA5sWa0Zks5qUoK5gaJpZM4I2SIQ
.

smarterclayton picture smarterclayton  ·  11 Jul 2016
3

From the latest blog post: A relevant analogy is that a Pet Set is composed of Pet dogs. If you have a white, brown or black dog and the brown dog runs away, you can replace it with another brown dog no one would notice. wat.

I think this is a pretty good example of how "pet" isn't the right name for this even technically since a pet has a number of extra implications.

NamedSet or IdentitySet seems to align closest with what's currently provided. They're not a PersistentSet unless you specifically add volumes to them or in other words, a PersistentSet to me is a NamedSet + (n * PersistentVolumeClaim).

Also relevant re: the blog post. This really needs to happen sooner rather than later or it's guaranteed to stick or at least be too complicated to change due to docs/issues/code that already references the current name.

philk picture philk  ·  13 Jul 2016
0

For completeness, names that have been proposed in the past that I don't see above include NominalSet, ShardSet, and IndexedSet.

The distinguishing characteristics we want to convey were specified here:
https://github.com/kubernetes/kubernetes/issues/27430#issuecomment-231554652

To expand on the storage point: The controller currently known as PetSet is unique among all the controllers in that it can instantiate and manage PVCs as well as pods, and, though it has other uses, the driving motivation for this controller is improved support for stateful workloads.

ref #260, #18016, #3024

bgrant0607 picture bgrant0607  ·  14 Jul 2016
0

cc @erictune

bgrant0607 picture bgrant0607  ·  14 Jul 2016
0

Another blog post has appeared which quite heavily uses the pets vs. cattle metaphor and makes it very clear that this is the derivation of the name of PetSet. Is there a way to communicate to the Kubernetes marketing team that a rename is being discussed? This kind of attention on the name PetSet is why I emphasized "before release" in the title of this issue.

Thanks to everyone participating in the discussion to help find a more fitting name.

jimmycuadra picture jimmycuadra  ·  14 Jul 2016
5

Sets are unordered. Lists, Arrays and Sequence all imply order and having indexes. So, I don't get why it has to end in set. I don't even think it is good for it to end in set.

Which opens up:

  • PodArray
  • PodList
  • PodSequence
  • PetArray

    • _uuh, no... wait, that last one doesn't work_ :smirk:

erictune picture erictune  ·  14 Jul 2016
0

They aren't replicas, but they aren't totally different either. There is only one template. They all have to have the same PodSpec. So, "distinct" or snowflake overemphasize the differences.

erictune picture erictune  ·  14 Jul 2016
0

It would be nice to capture that they are similar, and cooperate to fulfill a single purpose (what we would call a service if that name wasn't taken). But they have numbers.

Which leads me to the name "Team". They work together, but they have numbers on the back of their jerseys so that you can tell them apart.

erictune picture erictune  ·  14 Jul 2016
3

Another thought:
While the dictionary definition of "Replica" is an identical copy. But that is not how we use it in computer systems. MySQL, which is a key motivating use case for PetSet, talks about the master and slave (yes, I know another offensive term), as both being replicas. In fact, zookeeper and cassandra talk about replication and replication factors -- which I understand refers to specific data being replicated rather than instances, but all these apps that we are talking about running with PetSet, there is replication involved.

So, what about:

  • ReplicaList
  • ReplicaVector
  • ReplicaSequence
  • ReplicaArray

I sort of like ReplicaArray best because _array index_ is a thing, but _list index_, _vector index_, and _sequence index_ are not so much things.

I also like that it suggests some similarity with ReplicaSet.

Also, the PetSet type has a replicas field in it, so, yeah.

erictune picture erictune  ·  14 Jul 2016
0

Team, Lineup, Ensemble, Cohort or Variants. I agree with @erictune that the name needs to convey some degree of similarity rather than uniqueness.

therc picture therc  ·  14 Jul 2016
0

Can someone change the name of this issue? Release has already occurred ;)

StatefulSet gets my vote.

Or on the radical side:

PetSet ... just keep the darn name.

chrislovecnm picture chrislovecnm  ·  14 Jul 2016
0

+1 to StatefulSet

timothysc picture timothysc  ·  14 Jul 2016
0

In my mind, the general use case that stands above the rest is that by contrast to all other pod deployment mechanisms this is the one that allows stateful pods. So my vote is for StateSet - it is after all a set of states (thanks @apsinha for a great list); it sounds the best to me and is grammatically akin to PetSet, ReplicaSet and DaemonSet; but I would side with StatefulSet as a next best option.

Terms that start with "Replica" will be confusing next to ReplicaSet. And names that make the indexing prominent don't describe _why_ you would want to use pods that are indexed. Team is a good suggestion, but "Teamwork" could also describe what ReplicaSets do.

chrishiestand picture chrishiestand  ·  15 Jul 2016
1

+1 for StatefulSet, @erictune when reading your comment i was already confused by this, thinking it was already changed to ReplicaSet. Please do not pick a name that is too similar as it would be very easy to confuse the two (ReplicationController vs ReplicaSet vs ReplicaSequence ??? Very confusing to a beginner).

Kamshak picture Kamshak  ·  17 Jul 2016
0

+1 to ShardSet. A shard of a distributed database has a stable identity and associated persistent storage. Shards may added/removed from the system, but it is a non-trivial operation that requires careful planning and execution. This is the gist of a PetSet as I understand it.
Also the terms "shard" / "sharding" are already familiar the intended users of this feature, which is IMO an advantage over more abstract names like OrderedSet, ReplicaVector.

rkrzewski picture rkrzewski  ·  21 Jul 2016
0

I think ShardSet is a little too narrow because sharding is a subset of what PetSets do. PetSets allow the stateful representation of shards. PetSets are also for the stateful management of unsharded data like SQL master/slave replicas or etcd clusters where data is replicated but not sharded. As best as I can tell the commonality is statefulness.

chrishiestand picture chrishiestand  ·  21 Jul 2016
0

Agreed, but does "StatefulSet" make sense? Are the things in the set stateful, or the set itself? I think most people would assume the latter. ShardSet does not have this ambiguity.
"Replica" has already been established as the identical, interchangeable kind in Kubernetes lingo, so I think using a different word is warranted for the replicas that have distinguishable identity.

rkrzewski picture rkrzewski  ·  21 Jul 2016
1

+1 for PetSet

ShardSet or StatefulSet are not better than what we have now.

On Tue, Jul 26, 2016 at 5:54 PM, wallverb [email protected] wrote:

I would say - keep PetSet and focus on something more important. There are
already Masters/Slaves and BlackLists/WhiteLists and we live with it :)


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/kubernetes/kubernetes/issues/27430#issuecomment-235313550,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAskC7vBs4DJLowApQyl-bOJ1UcYI3oRks5qZi3PgaJpZM4I2SIQ
.

sttts picture sttts  ·  26 Jul 2016
1

I suspect the naming problem is actually a symptom of a design/hierarchy/abstraction problem from trying to add mid-layer functionality without breaking reverse compatibility of the existing layers.

AFAIK, the distinguishing capability of PetSet is that it persists the IP and volumes of a container through resurrection/rescheduling of the container. This implies there may be a missing abstraction layer between replicator and container.

For example, ignoring existing nomenclature, you could describe Clans as sets of Households that contain People, where the Clan describes a quantity of Households, the Household describes a named set of People, and the People can be either parents or children (expressing a two-level hierarchy of containers like a pod, where the parent namespaces network/disk/volumes for the children to share). The names that the Household uses to describe the People could then be configurable to either survive reincarnation (like PetSets) or not. If reincarnation is enabled, a replacement Person would get the same name/network/volumes as its predecessor. These names are probably not ideal either, but they hopefully they express how ReplicaSet and PetSet could exist in the same object hierarchy.

karlkfi picture karlkfi  ·  2 Aug 2016
0

The goals of an rc and petset are different. an rc is like a batallion of soldiers, they don't really know each other and as some die they're replaced asap. A petset is more like a family, they get names and startup/die in order. Obviously the soldiers can form a familiy, it would just be awkward, and the family can form an army, it would just be ineffective. The difference between an rc with reincarnation set to true and a petset is the latter provides an ordinal index, startup/teardown and a few other features designed to safeguard cluster membership.

bprashanth picture bprashanth  ·  3 Aug 2016
0

The difference between an rc with reincarnation set to true and a petset is the latter provides an ordinal index, startup/teardown and a few other features designed to safeguard cluster membership.

Those could be accounted for with feature flags, rather than being implicit features of the abstraction layer. Ordinal index is similar enough to a persistent name. Startup/teardown is something that would be nice to have on all containers/pods.

karlkfi picture karlkfi  ·  3 Aug 2016
7

I'm in love with this thread, as an example of the beauty of the open source process. @jimmycuadra thank you for bravely (re)raising this issue. I agree 100%. I don't have much background in sociology to know fully the implications, but it seems worth every effort to try to reduce use of violent language, even when its impact would be subtle. A name change is insubstantial; people will get used to it. In fact, people may wonder why it was renamed and find this thread and make their first contact with the concept of the impact of language on animal welfare. =)

+1 for StatefulSet.

quinncomendant picture quinncomendant  ·  25 Sep 2016
0

On naming:

This is not a Set. The members are ordered and indexed. I agree with @erictune that it's an Array. So, s/Set/Array/g.

Deployment, Job, and DaemonSet are named according to use case, not according to mechanism. Therefore, names like NamedArray or IdentityArray are less than ideal.

It's useful to be able to refer to the pods as instances of the group; for example, pods of DaemonSet are daemons, pods of ReplicaSet are replicas, and pods of Jobs are tasks. Pods of any collection with a name of the form AdjectiveArray would probably be called Adjective instances; for example, Stateful instances of a StatefulArray.

To propose other alternatives for consideration (though I'm not in love with them): An individual is a distinct member of a group, potentially with some special quality. So, IndividualArray. It's a bit long, but still shorter than ReplicationController. Its pods would be individuals. InstanceArray could also work, would be shorter, and would be consistent with (though perhaps confused with) GCE Instance Groups.

bgrant0607 picture bgrant0607  ·  18 Oct 2016
0

As Brian mentioned, a key differentiator on PetSet is that it is composed of unique-ish individuals working in concert with one another.

Some alternatives to consider:

  • Cohort (Pods = Individuals)

    • This is short and a way of referring to a group of individuals working together

  • Concert (Pods = Individuals)

    • Also short

  • CollaboratorArray (Pods = Collaborators)

    • Also clearly defines the individual items as working together instead of independently

  • AssociatedArray (Pods = Associates)
  • AssociateArray (Pods = Associates)
  • PartnerArray (Pods = Partners)
pwittrock picture pwittrock  ·  18 Oct 2016
0

@devin-donnelly @steveperry-53 @jaredbhatti You all interested in weighing in on the language aspects of naming?

pwittrock picture pwittrock  ·  18 Oct 2016
0

One other thought, I don't love the PetSet name for a completely different reason, which is that it implies these things are going to be a lot of work to maintain. I'd rather have a name that indicates how they are managed differently than Deployments, but not that they are fundamentally require a lot of care and maintenance. (though in some cases they might this isn't inherent to how we manage them)

pwittrock picture pwittrock  ·  18 Oct 2016
0

@pwittrock The name should ideally clearly distinguish the purpose from ReplicaSet, at least.

bgrant0607 picture bgrant0607  ·  18 Oct 2016
0

OrdinalSet: individuals could be called Ordinals; carries forward the set-suffix that some people like; emphasizes that the individuals have numbers.

erictune picture erictune  ·  18 Oct 2016
0
bgrant0607 picture bgrant0607  ·  18 Oct 2016
0

My vote for criteria we should use, extracted from https://github.com/kubernetes/kubernetes/issues/27430#issuecomment-231835429 above:

1. It succinctly describes the core goal
2. It is recognizable to a layman in the "systems administration" or "web
software" fields as matching that core goal, and it would be best if
explaining it can be done by simple analogy to something those users are
already familiar with
[...]

Thus, +1 to StatefulSet or StatefulArray, even if you could technically use it for non-stateful things too.

Re: Set vs. Array, everything else is a Set, so I think departing from that convention adds more friction and thus cost than the benefits we'd gain from a more technically-precise name. Again, see criteria above -- who are you optimizing for?

alex-mohr picture alex-mohr  ·  19 Oct 2016
0

Ok, since we are using the indices for sequencing, ordinal is more accurate than it was originally, and is less ambiguous than nominal.

It is, however, less suggestive of the use case than Stateful or Persistent. However, while the primary use case is stateful applications, it's not the only use case. Similar to indexed jobs, the index could be used to distribute soft state:
https://github.com/kubernetes/kubernetes/blob/master/docs/design/indexed-job.md

If not ordinal, other terms that convey similar meaning that have been discussed are:

  • a sequence is an enumerated collection of objects
  • an array is an ordered arrangement

I think "sequence" is too strongly suggestive of "sequential".

Lots of other naming considerations were discussed in #3024.

bgrant0607 picture bgrant0607  ·  19 Oct 2016
1

On Set vs Array, another option is to drop those suffixes completely, along the lines of Deployment and Job.

bgrant0607 picture bgrant0607  ·  19 Oct 2016
0

The basic difference between ReplicaSet and PetSet is that PetSet's members
are denominated somehow, while ReplicaSet's are anonymous, right?
"Denominated" is a mouthful, but other (shorter) synonyms for "named" might
be appropriate.

Re: Set vs. Array: I've seen "collection" used to good effect to describe a
grouping of related things in no particular order (such as set) and that
aren't guaranteed to be contiguous (like array).

Just thoughts.

On Oct 18, 2016 6:10 PM, "Brian Grant" [email protected] wrote:

On Set vs Array, another option is to drop those suffixes completely,
along the lines of Deployment and Job.


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/kubernetes/kubernetes/issues/27430#issuecomment-254683158,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ARmNwKsAK4EJ_cL6v392-eLLf7uOKq-0ks5q1W39gaJpZM4I2SIQ
.

devin-donnelly picture devin-donnelly  ·  19 Oct 2016
0

Thanks, @devin-donnelly. In this case, the members are ordered (sequential startup) and contiguous.

bgrant0607 picture bgrant0607  ·  19 Oct 2016
0

I agree with @alex-mohr about the main purpose.

The API group is apps. We could use StatefulApp or even just Stateful (/apps/.../statefuls/).

bgrant0607 picture bgrant0607  ·  19 Oct 2016
0

Some random suggestions:

  • MemberSet
  • ClusteredSet
CooCooCaCha picture CooCooCaCha  ·  19 Oct 2016
0

@bgrant0607 - I have a concern with StatefulApp. We will be answering tons of questions that say, "No, you do not have to use a StatefulApp if you want to have a persistent volume attached to your application.".

Much of the PM/user feedback we have got from the Red Hat side of the house is that "State" is a term that is too overloaded for this context. We have had some users request "MultiplexSet" since it describes "consisting of many elements in a complex relationship."

derekwaynecarr picture derekwaynecarr  ·  19 Oct 2016
0

+1 to @derekwaynecarr 's comment above about anything of the form Stateful*

I think it's actually worse to be overly-specific than to be not-obvious-until-someone-explains-the-connection.

davidopp picture davidopp  ·  19 Oct 2016
0

@derekwaynecarr @davidopp I disagree. An obscure name won't help us. The name can help steer new users in the right direction, which can be hard to do with documentation alone. OTOH, we can explicitly state in all the relevant docs that all controllers and pods support PVCs/PVs, and the tradeoffs of using those other mechanisms (lack of fencing, lack of generating claims from a template, lack of multi-writer support on most block devices, etc.).

Anyway, we're going to have a vote this afternoon.

bgrant0607 picture bgrant0607  ·  19 Oct 2016
0

fyi, this email was just sent out to the kubernetes-dev mailing list regarding the vote.

Dear Kubernetes Community,

In version 1.3, we alpha released a feature called “PetSets” which enables stateful application support in Kubernetes. After careful consideration and discussion with community members, we have decided to change the name of this feature “PetSets” (background: https://github.com/kubernetes/kubernetes/issues/27430).

We would like to have community members vote on a new name for PetSets. Suggestions were received from community members and below is our final list of candidates. Please note that we are not accepting any new names at this time and the community has decided that “PetSets” should not be one of the options. The candidates for the new name are the following:

StatefulSet
StatefulArray
Stateful
StatefulApp
PersistentInstanceSet
PersistentInstanceArray

We have set up a ranked-choice voting poll below where you can rank the names in the order that you like here:

link

The voting will be open until the end of day Monday 10/24/2016 midnight pacific time. Please vote only one time.

Please email me if you have any questions or concerns. Thank you!

Dan Paik
[email protected]
Kubernetes Product Manager

danpaik picture danpaik  ·  19 Oct 2016
0

The names you've listed don't seem to correspond to any of the better suggestions that have been generated in the past. Can you describe how you picked these names out of the suggestions above?

smarterclayton picture smarterclayton  ·  19 Oct 2016
0

We started by listing pretty much all of the suggestions that came in through this thread and then discussed each one on whether it was confusing with other features or technology (e.g. ReplicaSet, ShardSet) or sounded odd (IndividualSet), had potential for controversy, etc. and eliminated as we went down the list over a few rounds of discussion. We also wanted to end up with a manageable list (<10 options). Many of the people on this thread were involved.

danpaik picture danpaik  ·  19 Oct 2016
4

It would have been good to do that slightly more transparently. I was
surprised by this, and I wasn't aware this was coming up.

On Wed, Oct 19, 2016 at 3:46 PM, Dan Paik [email protected] wrote:

We started by listing pretty much all of the suggestions that came in
through this thread and then discussed each one on whether it was confusing
with other features or technology (e.g. ReplicaSet, ShardSet) or sounded
odd (IndividualSet), had potential for controversy, etc. and eliminated as
we went down the list over a few rounds of discussion. We also wanted to
end up with a manageable list (<10 options). Many of the people on this
thread were involved.


You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/kubernetes/kubernetes/issues/27430#issuecomment-254920085,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABG_p2XQY7_1uX2bKiDlxbN-KX2Ee_LIks5q1nOIgaJpZM4I2SIQ
.

smarterclayton picture smarterclayton  ·  19 Oct 2016
0

what's the proposed timeframe for the rename? pre-1.5? can we drop the alpha object completely, or will there be an attempt to maintain conversions from alpha petsets to objects with some other name?

liggitt picture liggitt  ·  19 Oct 2016
1

It is significantly harder to convert an entire type from alpha to beta than an annotation or field. We'd either need to autoconvert in apiserver or maintain 2 types, lock down edits to apps/v1alpha1, push the burden of converion on users, and teach the controller to understand both.

I think we should drop on rename.

bprashanth picture bprashanth  ·  20 Oct 2016
0

IdentitySet or NominalSet or RoleSet.

thockin picture thockin  ·  20 Oct 2016
1

Those were among the ones I was expecting to see in the poll, alongside
remaining with PetSet

On Oct 19, 2016, at 6:24 PM, Tim Hockin [email protected] wrote:

IdentitySet or NominalSet or RoleSet.


You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/kubernetes/kubernetes/issues/27430#issuecomment-254958704,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABG_p9PhPRZB4qRGFxu8xh09WuafP0RFks5q1piYgaJpZM4I2SIQ
.

smarterclayton picture smarterclayton  ·  20 Oct 2016
0

Ok, how about this? I'll close the current poll and leave this thread here open for suggestions until 5pm tomorrow (Thursday 10/20). At that time, I'll create a new poll and we can vote again.

For additions to the current list, I have:
IdentitySet
NominalSet
RoleSet

Regarding PetSet, from reading this thread it looks like the point is to change the name to something else because PetSets is offensive. Keeping it as an option would open up the possibility of not changing the name so it seems prudent to not include PetSets as an option.

danpaik picture danpaik  ·  20 Oct 2016
0

How are we voting on this?

chrislovecnm picture chrislovecnm  ·  20 Oct 2016
0

Voting is currently closed but will re-open tomorrow at 5pm with a new link (that I'll post here as well as email out to [email protected]).

If you have more suggestions, you can add a comment to this thread.

danpaik picture danpaik  ·  20 Oct 2016
0

Thank you for deciding to vote on a new name. Obviously, I don't think keeping the current name should be an option. The technical work required to make the transition is largely a result of letting this issue sit open for so long. I opened the issue before PetSet was released as alpha, specifically so that it would be considered before the technical cost of changing became a bigger issue and so people wouldn't use it as an argument for why it was okay to leave the name PetSet. Though there is precedent for leaving major features in alpha or beta for a long time to the point where they're de facto general availability (e.g. deployments), I don't think relying on anything about an alpha/beta feature is something we should encourage. They are alpha/beta for a reason: things might change.

jimmycuadra picture jimmycuadra  ·  20 Oct 2016
2

We have pretty explicit guidelines about support for alpha/beta - Jordan's
comments are reasonable because breaking people has cost, and we generally
avoid breaking people at all because it is far more impactful than a name.
In this case we will break people, and take the corresponding hit.

On Wed, Oct 19, 2016 at 7:39 PM, Jimmy Cuadra [email protected]
wrote:

Thank you for deciding to vote on a new name. Obviously, I don't think
keeping the current name should be an option. The technical work required
to make the transition is largely a result of letting this issue sit open
for so long. I opened the issue before PetSet was released as alpha,
specifically so that it would be considered before the technical cost of
changing became a bigger issue. Though there is precedent for leaving major
features in alpha or beta for a long time to the point where they're de
facto general availability (e.g. deployments), I don't think relying on
anything about an alpha/beta feature is something we should encourage. They
are alpha/beta for a reason: things might change.


You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/kubernetes/kubernetes/issues/27430#issuecomment-254971328,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABG_p5LZpbQP6R9O0uuQ1sJWcbqthxiRks5q1qoVgaJpZM4I2SIQ
.

smarterclayton picture smarterclayton  ·  20 Oct 2016
2

While there are strong opinions about the naming, that doesn't mean that
the opinion is shared among the community uniformly. I suggested leaving
PetSet in the poll because there are people who have expressed to me a
preference for the name, just like there are people who have expressed that
they are offended by the name, or prefer a more descriptive name. I'd
prefer to be inclusive to a wider set of opinions rather than exclusive
here.

On Wed, Oct 19, 2016 at 10:37 PM, Clayton Coleman [email protected]
wrote:

We have pretty explicit guidelines about support for alpha/beta - Jordan's
comments are reasonable because breaking people has cost, and we generally
avoid breaking people at all because it is far more impactful than a name.
In this case we will break people, and take the corresponding hit.

On Wed, Oct 19, 2016 at 7:39 PM, Jimmy Cuadra [email protected]
wrote:

Thank you for deciding to vote on a new name. Obviously, I don't think
keeping the current name should be an option. The technical work required
to make the transition is largely a result of letting this issue sit open
for so long. I opened the issue before PetSet was released as alpha,
specifically so that it would be considered before the technical cost of
changing became a bigger issue. Though there is precedent for leaving major
features in alpha or beta for a long time to the point where they're de
facto general availability (e.g. deployments), I don't think relying on
anything about an alpha/beta feature is something we should encourage. They
are alpha/beta for a reason: things might change.


You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/kubernetes/kubernetes/issues/27430#issuecomment-254971328,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABG_p5LZpbQP6R9O0uuQ1sJWcbqthxiRks5q1qoVgaJpZM4I2SIQ
.

smarterclayton picture smarterclayton  ·  20 Oct 2016
2

I understand that some folks in the comminity would like to rename this software component. Frankly some people in the community would like to not rename it. Not having the option for voting to keep the name PetSet is not approaching this from the perspective of inclusion. We are excluding people from the capability to vote to keep the name PetSet. If we are a comminity we should allow all opinions to be heard. We need to be able to agree to disagree.

Renaming the feature is understandable, excluding people for voting to keep the name is... Ah I digress.

Also, what is the plan to re-educate people if the name does change? There is going to be a cost to companies that are already using this component. How is that going to be addressed? If this is renamed are we going to do a breaking change or deprecate?

And lastly, why are we not using an online voting tool? Transparency is a beautiful thing.

@danpaik who can address the above concerns?

Again I do appreciate this community greatly.

chrislovecnm picture chrislovecnm  ·  20 Oct 2016
0

Also, what is the plan to re-educate people if the name does change?

Clayton's kubecon talk :)

bprashanth picture bprashanth  ·  20 Oct 2016
0

I am thinking of calling my lightening talk at kubecon - The feature formerly named PetSet.

In all seriousness it is an important question. Lots of people have been making Pets.

chrislovecnm picture chrislovecnm  ·  20 Oct 2016
1

A few quick responses:

1) We are using an online voting tool with ranked-choice voting once we have the list of contenders. Everyone can see the list of choices as well as what is winning (after they place a vote). The link was in the original message earlier today with the initial set of vetted choices but was pulled in favor of allowing more community members to contribute more choices.

2) PetSets has some strong reaction from both sides so I'm trying to work through both groups of opinions that I'm getting on inclusion / exclusion. I get the inclusion logic. The exclusion logic is that it looks like from this thread that there is potential for it to be offensive so we should change it and not have it as an option.

3) As for implementing the change, the engineers working on this want to have a new name settled ASAP so that they can get to work on it and design it.

4) Since a lot of people have been making pets, if a change is going to be made it needs to be made now. It looks like ideally we should have made the change sooner (before alpha launch) but we are where we are, etc.

danpaik picture danpaik  ·  20 Oct 2016
0

When we rename petsets, I expect that alpha support will be dropped.

Kubernetes 1.4 will have apps.v1alpha1.petset.

Kubernetes 1.5 will have apps.v1beta1.otherthing. It won't have anything called petset and it won't remember your petset objects from when you were running 1.4.

Users will need to GET and then DELETE their PetSets, edit the manifest and then upgrade their clusters to 1.5, and then POST the NewThing.

It might seem simple to support two different names concurrently. However, based on experience with extensions.v1beta1.job and batch.v1.job and batch.v2alpha1.job, I do not believe we can do this in the time before 1.5.

A key purpose of alpha is so that developers do not have to do headstands when they make a change that is difficult to make backward compatible. Supporting the old name and the new name at the same time is going to require a headstand. Feel free to prove me wrong with a PR.

erictune picture erictune  ·  20 Oct 2016
-1

The only justification anyone has presented for keeping PetSet is the technical and educational cost of changing code and marketing material for a feature already being used by some people. I respect that, and think that is a very valid reason to consider not doing this, but I think the argument that not allowing people to vote for PetSet is "excluding people's opinions" is really putting energy into the wrong place. The goal here shouldn't be to support some perfect democracy for the sake of "community." The fact that there has been four months of discussion on the topic _is_ community. @danpaik has already said that the Kubernetes team has decided to change it. Let's just do it and move on.

jimmycuadra picture jimmycuadra  ·  20 Oct 2016
0

I've followed the discussions on this and the other issue, and while there were a lot of thoughtful arguments made, it doesn't feel like we are converging. So, further discussion doesn't make much sense. And we have limited time for it before beta. And I see getting to beta sooner as more valuable than having the best possible name.

Several of the arguments for various names are about how words evoke certain ideas in the minds of our users. Rather than postulating about what is in our user's minds, a poll seems like a good way to find out directly.

Therefore, I asked Dan to conduct a poll.

My intent in conducting a poll was not to determine whether or not PetSet is offensive. I don't find it offensive, but I can see how reasonable people might find it offensive, and I don't think Kubernetes should offend even a small minority if it can reasonably be avoided. Therefore, PetSet is not included in the poll.

The purpose of the poll was to determine from among the not-known-to-be-offensive options, which one made the most sense to people.

erictune picture erictune  ·  20 Oct 2016
0

@erictune issue is openned for PetSet transition / upgrade path. https://github.com/kubernetes/kubernetes/issues/35182

Our users will need a path to migrate to the new objects, without downtime.

chrislovecnm picture chrislovecnm  ·  20 Oct 2016
1

Dan,

On #2, how about adding an option for “Do not change” instead? Maybe slightly less biased. I’m not a professional pollster or statistician, but if someone knows one it wouldn’t be a bad idea to consult them.

Ike

On Oct 20, 2016, at 2:46 AM, Dan Paik [email protected] wrote:

A few quick responses:

1) We are using an online voting tool with ranked-choice voting once we have the list of contenders. Everyone can see the list of choices as well as what is winning (after they place a vote). The link was in the original message earlier today with the initial set of vetted choices but was pulled in favor of allowing more community members to contribute more choices.

2) PetSets has some strong reaction from both sides so I'm trying to work through both groups of opinions that I'm getting on inclusion / exclusion. I get the inclusion logic. The exclusion logic is mostly around whether it's fair to include it as it's the name that has already been in use and may be a simple default answer (so it may have an advantage).

3) As for implementing the change, the engineers working on this want to have a new name settled ASAP so that they can get to work on it and design it.

4) Since a lot of people have been making pets, if a change is going to be made it needs to be made now. It looks like ideally we should have made the change sooner (before alpha launch) but we are where we are, etc.


You are receiving this because you commented.
Reply to this email directly, view it on GitHub https://github.com/kubernetes/kubernetes/issues/27430#issuecomment-255022775, or mute the thread https://github.com/notifications/unsubscribe-auth/AAJN0WH3J40XPxkRpIYtzMfXNFC0KrHiks5q1w5VgaJpZM4I2SIQ.

ikester picture ikester  ·  20 Oct 2016
2

@danpaik who can handle a PR on the questions that I have raised here:

Also, what is the plan to re-educate people if the name does change? There is going to be a cost to companies that are already using this component. How is that going to be addressed?

I opened a PR on upgrades, and non-breaking changes, someone else needs to run with this one. There are both education and marketing problems that we are creating. We are creating technical debt for companies that have already used this tool.

chrislovecnm picture chrislovecnm  ·  20 Oct 2016
0

Surely whoever writes the PR should choose the new name? It's thankless work, so the person that writes the PR should at least have that reward :-)

justinsb picture justinsb  ·  20 Oct 2016
2

The current list is. Please let me know if you'd like to suggest another name.

StatefulSet
StatefulArray
Stateful
StatefulApp
PersistentInstanceSet
PersistentInstanceArray
IdentitySet
NominalSet
RoleSet

A new poll will be created later tonight (after 5pm).

danpaik picture danpaik  ·  20 Oct 2016
3

@danpaik Synopsis of PetSet for vote:

PetSet is a Kubernetes API resource type intended to facilitate deployment and management of stateful applications (e.g., databases, key-value stores) and other workloads that require distinct, stable network identities and/or storage for each instance:
http://kubernetes.io/docs/user-guide/petset/

What primarily distinguishes PetSet from other workload-management APIs in Kubernetes such as Deployment and DaemonSet is that the Pods it generates have predictable, stable names and that it can generate PersistentVolumeClaims in addition to Pods.

bgrant0607 picture bgrant0607  ·  20 Oct 2016
0

@danpaik / @aronchick / @bgrant0607 who is the PM who manages priorities with PetSets from the google side of the house? I know @erictune is in the middle of this, but I am not sure who are the full list of owners. Who at a product owner level owns this, and where is this work listed for this? Are we talking about 1.5 a timeframe or beta timeframe? When is 1.5?

I would say that we need to update https://github.com/kubernetes/kubernetes/issues/28718

This is a blocker / and maybe a breaking item, and I am wondering if we should recommend pushing this out more. The last thing that I want is this shoehorned in.

This is getting people a tad upset. Not doing this properly will cause C-Levels to break out torches and pitchforks.

chrislovecnm picture chrislovecnm  ·  20 Oct 2016
1

@danpaik did we lose PersistentSet deliberately?

Also, I think _not_ including PetSet as a choice risks prolonging this. If we want to change the name soon, we should not exclude the option.

justinsb picture justinsb  ·  20 Oct 2016
0

Yes, "Persistent.." is shorter than "PersistentInstance..", please include it.

MikeSpreitzer picture MikeSpreitzer  ·  20 Oct 2016
0

1.5 code freeze is in 3 weeks (11/7) with the launch planned for December.

I'm in the PM for Petsets on the Google side working with @erictune.

PersistentSet was changed to PersistentInstanceSet because PersistentSet is too general and can be confused with PersistentVolumes so "Instance" was added to remove some of the confusion.

It does get to be harder and harder to change as time goes on so we're trying to get this done before beta. We're trying to get PetSets into beta for 1.5.

danpaik picture danpaik  ·  20 Oct 2016
3

@danpaik is PM on the issue from Google, but, to be clear, this is a community and he/I/everyone here is just voting. We (at Google) don't "own" anything. We're just trying to close before 1.5.

aronchick picture aronchick  ·  20 Oct 2016
1

Here is the latest:

PetSet is a Kubernetes API resource type intended to facilitate deployment and management of stateful applications (e.g., databases, key-value stores) and other workloads that require distinct, stable network identities and/or storage for each instance:
http://kubernetes.io/docs/user-guide/petset/

What primarily distinguishes PetSet from other workload-management APIs in Kubernetes such as Deployment and DaemonSet is that the Pods it generates have predictable, stable names and that it can generate PersistentVolumeClaims in addition to Pods.

Here are some potential alternate names for this resource type:

StatefulSet
StatefulArray
Stateful
StatefulApp
PersistentSet
PersistentArray
PersistentInstanceSet
PersistentInstanceArray
IdentitySet
IdentityArray
NominalSet
NominalArray
RoleSet
RoleArray

As for the inclusion of PetSets, a few people pointed out to me that they'd like it excluded citing the code of conduct as they find this offensive and not fostering an open and welcoming community.

http://contributor-covenant.org/version/1/4/

"Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful."

https://github.com/cncf/foundation/blob/master/code-of-conduct.md

"As contributors and maintainers of this project, and in the interest of fostering an open and welcoming community, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities."

danpaik picture danpaik  ·  20 Oct 2016
2

Where do we nominate alternative names?

I'd like to nominate CatArray

Reasoning: cats are solitary, independent creatures with eccentric personalities. They are also particularly famous on the internet.

The metaphor would be to contrast cats' evolutionary strategy with a school of fish, herds of bison, flocks of geese, etc which attempt to protect themselves from predators on the basis of their numbers.

PS: want to clarify that my proposal is serious (a group of us chatted about it at lunch, I wanted to communicate our best idea). I recognize that CatArray is a bit cheeky and fun. Also the valid concerns around pet ownership and slaughtering cattle. On the other hand when I joined the team I found the pets vs cattle metaphor clarifying. Thus trying to address what we dislike (ownership/violence) without losing what we like (distinct vs fungible).

fejta picture fejta  ·  21 Oct 2016
0

@aronchick you own your staffing and resource allocation :) We are on the same playing field. Thanks for cleaning up what I said.

We're trying to get PetSets into beta for 1.5.

@danpaik We probably need to take this discussion to another issue, please feel free to move it. Does that mean in 1.5 the name is changing?

chrislovecnm picture chrislovecnm  ·  21 Oct 2016
1

@wallverb That is a reasonable request but should probably be opened as a separate issue. You can reference this one for context.

jimmycuadra picture jimmycuadra  ·  21 Oct 2016
3

Please stop. Derailing the conversation with additional demands does not help us resolve this issue of what to change the name to. We have had multiple requests for varying reasons to change the name of this feature.

If you have ideas for names that represent the feature succinctly and are not intended to be humorous or sarcastic we welcome your contributions. if not, your comments are a distraction
to an already complicated debate.

sarahnovotny picture sarahnovotny  ·  21 Oct 2016
1

@sarahnovotny and @jimmycuadra I added some postscript above to clarify that my proposal is serious. Also thank to you both for doing a great job thus far with a very complex and sensitive situation. I am impressed with your patience during this process!

fejta picture fejta  ·  21 Oct 2016
0

@sarahnovotny / @danpaik when is voting again. Asking for interested developers.

chrislovecnm picture chrislovecnm  ·  21 Oct 2016
0

Dan had said he'd post a new poll at 5 PM (assuming Pacific.) Should be up in just a few minutes.

Edit: I should have just Dan answer. Details below VVV

jimmycuadra picture jimmycuadra  ·  21 Oct 2016
0

Voting will start up again later tonight. I'll put a link here when it's ready. There are still some discussions going on so we'll see if this thread gets updated with more thought but if not, I'll collect everything and create a new poll for voting.

danpaik picture danpaik  ·  21 Oct 2016
1

@fejta Hey Erick -- This is a community, so you have a right to do whatever you'd like, but I would like to implore you to withdraw CatArray. In my opinion, the primary reason to change the name is not the initial reason that was proposed in this thread, but that PetSet is cute and totally indecipherable by anyone who does not understand the Pets v. Cattle analogy. CatArray falls into this camp.

aronchick picture aronchick  ·  21 Oct 2016
2

I would like to add that I'm uncomfortable with having to understand the behaviour of cats, dogs, cows, and other animals in order to grasp a technical concept in Kubernetes. Its maybe obvious to people who are familiar with animal behavior but I think many people are not. Also I really don't like thinking about killing and predators and violence and so forth unless I have to. Just a personal opinion.

apsinha picture apsinha  ·  21 Oct 2016
0

@danpaik and the window will close when? I assume this is going to be the "vote" and we are not going to do this again. We need to put this to bed. This is turning into an optics nightmare.

chrislovecnm picture chrislovecnm  ·  21 Oct 2016
0

I'll create a poll today (having some issues with the website that creates the poll) and the voting window will close on Monday 10/24/2016 at midnight.

I'd like to leave CatArray off the list.

danpaik picture danpaik  ·  21 Oct 2016
1

@wallverb thanks for clarifying. People are taking this a tad serious. - edited since I cannot read at times.

chrislovecnm picture chrislovecnm  ·  21 Oct 2016
0

I agree that CatArray is a cute name, and if the goal is to avoid cute names you can exclude it from the poll.

fejta picture fejta  ·  21 Oct 2016
-2

Thank you everyone!

I create a new poll. The link is below. I will also share this link in the [email protected] email list and the slack channel tomorrow.

http://www.polljunkie.com/poll/iibacq/kubernetes-petsets-renaming

Please let me know if you think anything is incorrect, etc. Thanks again.

danpaik picture danpaik  ·  21 Oct 2016
1

Have we considered the abbreviations for each of these?

  • RoleSet = rs, which is already taken by replicasets.
  • StatefulApp & StatefulArray = sa = serviceacount.
  • NominalSet = ns = namespace.

Some of the alternatives also have unfortunate abbreviations. I can't see StatefulSet being an acceptable choice, as a particular example.

justinsb picture justinsb  ·  21 Oct 2016
1

@justinsb well we can only hope StatefulSet does not win.

But we can be creative with the abbreviations as well

chrislovecnm picture chrislovecnm  ·  21 Oct 2016
0

I'm not a fan of "Stateful". It seems orthogonal to the problem currently solved by petset. Cassandra and gnatsd are examples of applications that are highly stateful and run just as well in a replicaset as they do in a petset. HDFS datanode is a highly stateful app that is suited to run as a daemonset. A petset might also be used to partition work between a group of stateless workers where the partitioning is decided by the pet's index. Stateful is a common but not defining characteristic of applications that run best in "petsets". There are stateful apps that are not suited for petsets. There are stateless apps that are suited for petsets.

mikedanese picture mikedanese  ·  21 Oct 2016
3

Anyone who's running a poll - can you please make sure to have PetSet on it? I, for one, quite like the name, and would like to ensure people who share this opinion are not excluded from voting by a mindset of "it must be changed"

fortytw2 picture fortytw2  ·  21 Oct 2016
3

I haven't followed the whole discussion, but PetSet looks IMHO like a better choice than any of the proposed ones in the poll (why do we even consider *Array?). I also agree that "pet vs. cattle" analogy might be misleading, but it's not a strong argument for me.

I'm refraining from voting in the poll right now as the original PetSet is not even on the list :disappointed:

hjacobs picture hjacobs  ·  21 Oct 2016
0

@wallverb @hjacobs @fortytw2 can you help me understand more?

As we've said, the issue is not solely the concerns at the top of the thread. PetSet is inherently a bad name because it is both "cute" and "does not implicitly describe the functionality of the object." Further, it requires understanding the "Pets vs. Cattle" analogy, which should not be required reading for running a distributed system like Kubernetes.

If I'm missing something, please let me know!

aronchick picture aronchick  ·  21 Oct 2016
0

@aronchick my 2 cents:

  • the name probably should end with "Set" to be consistent with "ReplicaSet" (reading the thread I now understand the "*Array" proposals, but they are not intuitive to me at first)
  • it should be memorable
  • it should be rather short
  • its acronym should be compatible (no conflicts and not "unfortunate" like "SS")
  • pets might be cute, but how can a little bit of cuteness be bad in this cruel world? :smirk_cat:
  • pets deserve our special care, so it somehow describes a property intuitively (no need to know the whole "pets vs. cattle" analogy)
  • I like the proposal "PetSet, redefined as an abbreviation/backronym of PersistentSet ("Pe't")"
  • I don't like having a poll with a curated list which excludes the original name (that just sounds neither transparent nor fair to me)
  • "PersistentSet" comes closest for me, but it's not consistent ("ReplicaSet" == "Set of Replicas", "PetSet" == "Set of Pets", but "Set of Persistent"?)

For me to understand: how big is the pain with the current naming really (maybe just a poll to find out?)? I personally just don't see the pain outweighing the hassle of changing to another subpar solution.

BTW: I just came here because the poll was posted in Slack and I first thought "oh cool, a naming poll :smile:", but then I saw the available poll options :disappointed:

hjacobs picture hjacobs  ·  22 Oct 2016
0

I'm personally a fan of PetSet. When I first saw it in the documentation I knew exactly what it was for and what problem it solved before I even read a word about it and how often does that ever happen? It also seems more succinct than any of the alternatives so far.

It could be argued that the vast majority of people in the container community will understand the analogy and that anything that can be done to make kubernetes concepts easier to understand by building on existing concepts will reduce the overall bandwidth spent answering questions that could be spent making PetSet's even better :)

I'm certainly not opposed to a name change, I just hope it will be for a better, more succinct name since names really are important. :)

joeblackwaslike picture joeblackwaslike  ·  22 Oct 2016
0

I know people probably don’t want even more choices at this point but, after reading again recent arguments and looking at the options in that poll, I wonder why I haven’t seen:

OrderSet - os
OrderedSet - os
OrderedInstanceSet - os
IndexSet - is
IndexedSet - is
IndexedInstanceSet - is
SequenceSet - seq
SequencedSet - seq
SequencedInstanceSet - seq
OrdinalSet - os

Key point: Noun (not Adjective)

It’s important that the name reflects what the abstraction actually represents and establishes expectations.

Just stirring things up on an otherwise boring Saturday :)

ikester picture ikester  ·  23 Oct 2016
0

@danpaik I noticed that the polljunkie summary scores do not seem to make sense when compared with the downloadable votes. I encourage you to use the Export to CSV option and crunch the numbers yourself to find the Condorcet winner.

aecolley picture aecolley  ·  23 Oct 2016
0

Thanks for the info. I'll download the csv as well after midnight on Monday night.

danpaik picture danpaik  ·  23 Oct 2016
-1

The whole idea of renaming, because of pets should not be replaced (kill and create) is a bit crazy to me. As german I have to say that having shortcuts like "ns" [1] and "sa" [2] are much more offending than "PetSet".
I totally agree with @wallverb @hjacobs @fortytw2 .

[1] https://en.wikipedia.org/wiki/Nazism
[2] https://en.wikipedia.org/wiki/Sturmabteilung

szuecs picture szuecs  ·  24 Oct 2016
0

@szuecs it seems unfair to the conversation to compare two letter acronyms as similar to an intentional metaphor. The question is whether the "pet" term lends itself too naturally to the phrase "vs cattle" as discussed from the beginning or whether it stands on its own as @wallverb discussed.

I still like pet since it makes me think of my pets, which I do value more than other animals. That's my preference, but I'm happy with how open the discuss has been and I'm thankful our community is rising to the occasion to find a democratic process. Thanks again to @danpaik for all the hard work!

mbbroberg picture mbbroberg  ·  24 Oct 2016
1

Minor observation: PersistentSet can just as easily use PerSet as a shorthand rather than the suggestions above for PetSet again, for those of us who like short names

wyaeld picture wyaeld  ·  25 Oct 2016
0

The poll result is official? PetSets are StatefulSets now?

capsloth picture capsloth  ·  25 Oct 2016
0

I think that chosen StatefulSet is very bad name, what if I have stateless PetSet?

pigmej picture pigmej  ·  25 Oct 2016
0

@danpaik do we have results? I need to rename a talk at kubecon

chrislovecnm picture chrislovecnm  ·  25 Oct 2016
0

Yes, I am crunching the final tally to find the condorcet winner which may or may not be consistent with the polljunkie results (which uses a different method). I'll update later today.

danpaik picture danpaik  ·  25 Oct 2016
0

I think what redis did here is worthy of thought: http://redis.io/commands/SLAVEOF

When we talk about PetSets, we have an opportunity for advocacy. Talking about things and giving them names is the only way to effect change. I have never thought more about cattle and where meat comes from than I have since the pets vs cattle analogy came about. We don't need to endorse the analogy, but stopping using the words removes that thought from my mind.

@jimmycuadra what is a successful outcome here?

justinsb picture justinsb  ·  25 Oct 2016
0

Yes Chris. That was my main concern when I first posted on this thread.

But how big of a debt is it really? I mean, this is still beta, and it’s only been out for a few months.

I’m not saying the cost is zero. There are clearly many documents, blog posts, tutorials, videos, etc. already out there. My point is that it’s only going to get worse. And if we’re going to make a change it should be done now.

On Oct 20, 2016, at 12:40 PM, Chris Love [email protected] wrote:

@danpaik https://github.com/danpaik who can handle a PR on the questions that I have raised here:

Also, what is the plan to re-educate people if the name does change? There is going to be a cost to companies that are already using this component. How is that going to be addressed?

I opened a PR on upgrades, and non-breaking changes, someone else needs to run with this one. There are both education and marketing problems that we are creating. We are creating technical debt for companies that have already used this tool.


You are receiving this because you commented.
Reply to this email directly, view it on GitHub https://github.com/kubernetes/kubernetes/issues/27430#issuecomment-255160241, or mute the thread https://github.com/notifications/unsubscribe-auth/AAJN0VYVAuqRw1_65fuec6lB6A7Q_2-bks5q15mXgaJpZM4I2SIQ.

ikester picture ikester  ·  25 Oct 2016
0

I know people probably don’t want even more choices at this point but, after reading again recent arguments and looking at the options in that poll, I wonder why I haven’t seen:

OrderSet - os
OrderedSet - os
OrderedInstanceSet - os
IndexSet - is
IndexedSet - is
IndexedInstanceSet - is
SequenceSet - seq
SequencedSet - seq
SequencedInstanceSet - seq
OrdinalSet - os

Key point: Noun (not Adjective)

It’s important that the name reflects what the abstraction actually represents and establishes expectations.

Just stirring things on an otherwise boring Saturday :)

On Oct 21, 2016, at 6:22 PM, Henning Jacobs [email protected] wrote:

@aronchick https://github.com/aronchick my 2 cents:

the name probably should end with "Set" to be consistent with "ReplicaSet" (reading the thread I now understand the "*Array" proposals, but they are not intuitive to me at first)
it should be memorable
it should be rather short
its acronym should be compatible (no conflicts and not "unfortunate" like "SS")
pets might be cute, but how can a little bit of cuteness be bad in this cruel world? 😼
pets deserve our special care, so it somehow describes a property intuitively (no need to know the whole "pets vs. cattle" analogy)
I like the proposal "PetSet, redefined as an abbreviation/backronym of PersistentSet ("Pe't")"
I don't like having a poll with a curated list which excludes the original name (that just sounds neither transparent nor fair to me)
"PersistentSet" comes closest for me, but it's not consistent ("ReplicaSet" == "Set of Replicas", "PetSet" == "Set of Pets", but "Set of Persistent"?)
For me to understand: how big is the pain with the current naming really (maybe just a poll to find out?)? I personally just don't see the pain outweighing the hassle of changing to another subpar solution.

BTW: I just came here because the poll http://www.polljunkie.com/poll/iibacq/kubernetes-petsets-renaming was posted in Slack and I first thought "oh cool, a naming poll 😄", but then I saw the available poll options 😞


You are receiving this because you commented.
Reply to this email directly, view it on GitHub https://github.com/kubernetes/kubernetes/issues/27430#issuecomment-255479184, or mute the thread https://github.com/notifications/unsubscribe-auth/AAJN0fAYmXvkQ7zhfv0bVUU93kNXJ7-2ks5q2TshgaJpZM4I2SIQ.

ikester picture ikester  ·  25 Oct 2016
0

PersistentPodSet?

On Oct 20, 2016, at 4:51 PM, Jimmy Cuadra [email protected] wrote:

Dan had said he'd post a new poll at 5 PM (assuming Pacific.) Should be up in just a few minutes.


You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

karlkfi picture karlkfi  ·  25 Oct 2016
5

I finished crunching the numbers and the winner is StatefulSet.

It won via multiple methods - average position (polljunkie) and condorcet using completion rules Schulze/Beatpath/CSSD, CIVS Ranked Pairs, MAM, Condorcet-IRV.

There is sometimes a bit of variation on the ordering after the top but the top is always StatefulSet.

The new name for PetSets will be StatefulSet.

I am truly sorry that some folks were displeased with the processes, transparency, and choices. Hopefully we can do a much better job next time should such a need arise.

danpaik picture danpaik  ·  26 Oct 2016
1

I'll take the todo to formalize some of the name decision processes and get that adapted to api_change.md. We have a set of guidelines for names (some of which we helped describe here) and that will help make the future process for name changes smoother.

Marking as resolved - thanks everyone for keeping this civil, even if there were some bumps.

smarterclayton picture smarterclayton  ·  26 Oct 2016
1

@danpaik would be great if you consider the old name in the next poll. I don't really care about names, but if you break backwards compatibility, because of renaming then I care.

szuecs picture szuecs  ·  26 Oct 2016
0

@smaterclayton having a defined process about re-naming I think is worthwhile. Think it would have helped with some of the bumps. Appreciate u taking that on

chrislovecnm picture chrislovecnm  ·  26 Oct 2016
2

I'll take the todo to formalize some of the name decision processes and get
that adapted to api_change.md. We have a set of guidelines for names (some
of which we helped describe here) and that will help make the future
process for name changes smoother.

On Tue, Oct 25, 2016 at 6:08 PM, Dan Paik [email protected] wrote:

I finished crunching the numbers and the winner is StatefulSet.

It won via multiple methods - average position (polljunkie) and condorcet
using completion rules Schulze/Beatpath/CSSD, CIVS Ranked Pairs, MAM,
Condorcet-IRV.

There is sometimes a bit of variation on the ordering after the top but
the top is always StatefulSet.

The new name for PetSets will be StatefulSet.

I am truly sorry that some folks were displeased with the processes,
transparency, and choices. Hopefully we can do a much better job next time
should such a need arise.


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/kubernetes/kubernetes/issues/27430#issuecomment-256191731,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABG_p9g8J2w3CAph_l_BVgQz0Lv6LZFpks5q3n3ngaJpZM4I2SIQ
.

smarterclayton picture smarterclayton  ·  26 Oct 2016
1

@smarterclayton if you can have a PR / issue open for comment about doing so, that'd be swell (and link it in this issue)

fortytw2 picture fortytw2  ·  26 Oct 2016
0
erictune picture erictune  ·  27 Oct 2016
0

There is the question of how we decide the name. I don't think voting turned out to be a good way to do that.

There is also the question of how rename impacts users. We will see how the "delete alpha resource" impacts users when they upgrade their clusters to 1.5 and StatefulSet. We may decide that pattern is too costly. If so, we should invest in the API machinery to allow us to concurrently host the old Kind and the new Kind (in cases when the representations are intraconvertible).

@justinsb we talked about this topic recently.

erictune picture erictune  ·  27 Oct 2016
0

@smarterclayton your proposal will cover both those topics? (and more, I suspect, knowing you 😄 )

erictune picture erictune  ·  27 Oct 2016
0

Yeah I plan to early next week.

On Thu, Oct 27, 2016 at 2:18 PM, Eric Tune [email protected] wrote:

There is the question of how we decide the name. I don't think voting
turned out to be a good way to do that.

There is also the question of how rename impacts users. We will see how
the "delete alpha resource" impacts users when they upgrade their clusters
to 1.5 and StatefulSet. We may decide that pattern is too costly. If so, we
should invest in the API machinery to allow us to concurrently host the old
Kind and the new Kind (in cases when the representations are
intraconvertible).

@justinsb https://github.com/justinsb we talked about this topic
recently.


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/kubernetes/kubernetes/issues/27430#issuecomment-256726964,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABG_p3qwPQSvSiGiykMqnRuNnzfGVOBBks5q4OsKgaJpZM4I2SIQ
.

smarterclayton picture smarterclayton  ·  28 Oct 2016