Live data from Hacker News

Nomad, a cluster manager and scheduler

hashicorp.com

11–20 of 48 posts

Re: Nomad, a cluster manager and scheduler

#11
post #8

> Nomad is designed to be a global state, optimistically concurrent scheduler. Global state means schedulers get access to the entire state of the cluster when making decisions enabling richer constraints, job priorities, resource preemption, and faster placements. Can anyone shed light on how that's possible? I was under the impression that global state in distributed systems was not possible?

[deleted]

Re: Nomad, a cluster manager and scheduler

#14
post #9
post #8

> Nomad is designed to be a global state, optimistically concurrent scheduler. Global state means schedulers get access to the entire state of the cluster when making decisions enabling richer constraints, job priorities, resource preemption, and faster placements. Can anyone shed light on how that's possible? I was under the impression that global state in distributed systems was not possible?

http://research.google.com/pubs/pub41684.html Basically, there's a server that holds state for the cluster. When a scheduler attempts to load a job into the cluster, it grabs state from the aforementioned server, performs its job placement calculations, and then tries to submit its answer to the master state. Since there are many such schedulers, and the amount of time it takes to place a job is non-trivial, its poss…

Sounds more like "greedy" than "optimistic" scheduling: the early jobs get the worms.

In most scheduling systems, two 10,000-node jobs that each would saturate a cluster on their own will time-share if submitted together, with each job acting in practice more like 10,000 single-node jobs. The result is usually each job getting a probabilistic 50% share of the cluster while they're both running, and then whichever one runs longer saturating the cluster once the other ends.

This scheduling system, meanwhile, would seem to just hand the 10,000 nodes over to job A, and then sleep job B until job A is done.

Admittedly, in the case where the jobs aren't submitted at the same time, and job A has already grabbed and saturated the cluster, the two cases collapse together: job B must wait (unless you want to schedule processes rather than containers; then you just degrade the cluster's performance.) But for batch-processing applications, you'd usually schedule everything to start at once, precisely so that the scheduler could interleave the jobs.

Re: Nomad, a cluster manager and scheduler

#16
No solution for persistent/statefull applications, which is a real disapointment, seeing as this is where I see orchestration systems currently breaking new ground and coming up with interesting solutions. The contraint systems also doesn't look too impressive; can I do the equiq of Marathon's GROUP_BY contraint (i.e. AZ GROUP_BY 2 -> ensure I have instances running on >=2 machines w/ different AZ values)?

Also no maintenance primitives, but that's just me being in love with Mesos.

Re: Nomad, a cluster manager and scheduler

#17
post #5

Anyone able to give a compare/contrast here with other cluster management systems... Apache Mesos or Kubernetes, for example?

Hashicorp themselves have published comparisons to Kubernetes, Mesos, et al on the Nomad site[1]. They look well written and generally not too biased. [1]: https://www.nomadproject.io/intro/vs/

https://www.nomadproject.io/intro/vs/mesos.html

I'm not sure I understand what is being said in this page.

Is the Nomad scheduler centralized? If so, it has been demonstrated that distributed scheduling (e.g. Mesos) leads to better throughput and availability, while achieving a placement close to a centralized approach.

Re: Nomad, a cluster manager and scheduler

#20
post #12

Side note to Hashicorp devs: The Products section of your homepage is virtually unreadable on Windows/Chrome: https://i.imgur.com/8st8HQk.png

Hashi folk: this actually hit my own site a few weeks ago, learning from the experience: OS X renders fonts better, even on the same non-retina display, than Windows does. If you have something font-weight: 200 or less, it's fine on OS X, but it's completely unusable on Windows.
Post reply on HN