mesos-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Benjamin Bannier <benjamin.bann...@mesosphere.io>
Subject Differing DRF flavors over roles and frameworks
Date Wed, 29 Nov 2017 11:03:15 GMT
Hi,

the DRF flavors we use in our hierarchical allocator slightly differ between how we identify
the role and the framework most under fair share.

In DRF each actual usage is normalized to some “total”. For roles we use the total resources
in the cluster (or for quota the total non-revocable resources), see e.g., https://github.com/apache/mesos/blob/bf507a208da3df360294896f083dd163004324aa/src/master/allocator/mesos/hierarchical.cpp#L521-L524.
For frameworks in the same role on the other hand we choose to normalize with the allocated
resources, see e.g., https://github.com/apache/mesos/blob/bf507a208da3df360294896f083dd163004324aa/src/master/allocator/mesos/hierarchical.cpp#L551.
This means that we e.g., need to update the denominators in the framework sorters whenever
we made an allocation.

These approaches are not equivalent, and I was wondering what the reason for the deviating
DRF for frameworks was.

It appears to me that by normalizing with the used resources inside a role we somehow bias
allocations inside a role against frameworks with “unusual” usage vectors (relative to
other frameworks in the same role). We do not seem to document any such intention, and I am
also unsure about the usefulness for such a bias in a world with large, possibly deeply nested
role trees. More from an aesthetic point of view, the special treatment for frameworks seems
in the same role seems to break symmetry (necessitating special treatment), and having to
update the denominators in framework sorters on each allocations also seems to potentially
introduce extra churn in framework sorter.

Does anybody recall why we use a different DRF flavor for frameworks in the same role as opposed
to the one used across roles?


Cheers,

Benjamin
Mime
View raw message