Mesos 0.22.0 has been released!

There’s a nice video which goes through the new features in 0.22.0 as well as some features scheduled for the 0.23.0 release.

I’ve put together some notes I put together while watching the video.

Disk Isolation

Disk Isolation allows the MesosContainerizer to enforce a disk quota. Prior to 0.22.0 mesos supported isolation of cpu, memory, pid namespacing, network ports and bandwidth.

To use this new isolation, two new flags are required:

# enable disk isolation
--isolation=“posix/disk” --enforce_container_disk_quota

# set the quota, in megabytes
-—resources=“disk:64”

Disaster Prevention

There are several mechanisms to prevent disaster that were in place prior to the 0.22.0 release:

  • master commits suicide when losing connection to ZK
  • compute nodes ignore shutdown requests received from master that is not leader
  • recovery remove limit (% of cluster)

In this release the ability to rate limit slave removal was added which could allow administrators to react when they notice the slave removals occurring.

To configure the rate limit, a new flag is available:

# remove one slave per minute
--slave_removal_rate_limit=1/1mins

Labels and Discovery

Tasks can now have labels, which are simply key/value pairs. This allows tasks to be tagged, for example environment: production.

Additionally, tasks can now include DiscoveryInfo. This information can be used for service discovery as it can provide common attributes such as environment, location and version. However, it also supports Ports (which can have names), as well as arbitrary labels.

Video link: https://youtu.be/LC3dlmdc4bc?t=600d168a75c2754f26d5368f4cff414752/include/mesos/mesos.proto#L1093

More features and improvements

There are other features and improvements which are highlighted in the video. I imagine the mesos website will be updated soon with a summary as well.

What to look forward to

With a release being published within the hour, naturally it’s time to look at what’s coming next:

  • persistent primitives - to support storage-like services
  • dynamic reservations - allow a framework to dynamically reserve offered resources, allowing those resources to only be re-offered to the same framework (to support stateful services)
  • ssl support
  • optimistic offers - resource offers are currently offered to a single framework at a time, with optimistic offers the offers would be handed out in parallel.

Again, there’s other features, improvements and bug fixes slated for Mesos 0.23.0 but this should at least give a taste for what’s to come.