—
*Joris Van Remoortere*
Mesosphere
On Wed, Jun 15, 2016 at 5:04 PM, james <gar...@verizon.net
<mailto:gar...@verizon.net>> wrote:
@Joris,
OK. Now I understand where you are coming from. As soon as I get
some time, I'll join that design discussion. Thanks for the
clarifications.
James
On 06/15/2016 02:45 AM, Joris Van Remoortere wrote:
Since your interest is in the determination of the
values, as
opposed to
their propagation, I would just urge that you keep in
mind that
we may
(as a project) not want to support this information as
the current
string attributes.
Huh? Why not? If the attributes change, why can't this
sub-project
just change with those changing string attributes? Maybe some
elaboration how this might not naturally be able to evolve is a
warranted detail of discussion?
Sorry, I should clarify what I meant by support. By support I
mean that
we may not want to promise that those values will be there
(support as a
feature), and what schemas are mangled into the random strings
that we
currently call attributes. I did not mean that we wouldn't allow
users
to inject their own values if they wanted to. We just wouldn't
control
the standard or schema as a project and therefore couldn't
support it.
Any random collection of strings that has previously had no reserved
keywords is notoriously difficult to build new schemas in.
This is why we may want to instead introduce a typed structure
that is
dedicated to fault domain information. This:
* Prevents us from colliding with current users' attributes.
* Allows us to have more control over the types (YAY) and
ranges of
values.
* Allows us to introduce explicit structure such as dependency or
hierarchy.
The fact that users have already encoded information in
attributes is
not a reason for us to limit ourselves to that scope when better
structures may be available. This is why we shouldn't assume
that the
project will *provide support for* (as opposed to allow users
to) using
attributes.
As your said, it is their prerogative to join the design
discussion to
ensure that any formalized structure or schema we introduce is
one that
they are agreeable with.
—
*Joris Van Remoortere*
Mesosphere
On Tue, Jun 14, 2016 at 6:31 PM, james <gar...@verizon.net
<mailto:gar...@verizon.net>
<mailto:gar...@verizon.net <mailto:gar...@verizon.net>>> wrote:
On 06/14/2016 08:14 AM, Joris Van Remoortere wrote:
On the condition of compatible with existing
framework which
already rely on parsing attributes for rack
information.
There is currently nothing in Mesos that specifies the
format or
structure for rack information in attributes.
The fact that operators / frameworks have decided to
add this
information out of band is their problem to solve.
We don't need to be backwards compatible with something
we never
published to begin with. This is why it's ok for us to
consider
adding a
typed form of failure domain information that is
separate from the
typeless string attributes.
True. But you have to start somewhere, know that the schema and
codes will morph over time to maintain relevance and
usefulness. In
that vein, if folks have established interesting and useful
parameters for this work, then it is most beneficial that those
methods and codes are considered carefully. AKA:: speak up
now.
Diversity and inclusion are keenly beneficial, where practical.
Since your interest is in the determination of the
values, as
opposed to
their propagation, I would just urge that you keep in
mind that
we may
(as a project) not want to support this information as
the current
string attributes.
Huh? Why not? If the attributes change, why can't this
sub-project
just change with those changing string attributes? Maybe some
elaboration how this might not naturally be able to evolve is a
warranted detail of discussion?
I would venture that both 'determination of the values and
propagation (delays)' are inherently important in a cluster
of many
things:: hardware, resources, frameworks, security codes,
etc etc.
The author
and others seem to be keenly aware that a tight focus is
not going
to work, at this stage, so a broad appeal to a multitude of
needs is
best.
And in fact, until some idea is proven to be useless or too
difficult to
implement, the bigger the tent, the more useful the codes that
define this project/idea become. Personally, I'm very
excited that
someone has stepped up in this area; hoping they keep an
open mind
and flexibility geared toward multiplicative usage, in the
future.
Most mature hardware folks who build ideas into robust
systems do
exactly that, to motivate a multiplicative usage for organizing
hardware, performance and state metrics, and timing signals,
gregariously. All of this is routine semantics from a hardware
perspective.
At some point, folks will realize that kernel
configuration, testing
and tweaks are critical to cluster performance, regardless
of the codes
running on top of the cluster. So this project could easily
use cgroups
and such for achieve robustness in many areas of need.
Like it or not large amounts of hardware, need to have schema,
planning and architectural robustness to keep large amounts of
hardware, pristinely available for software efficiency to
be any
where near optimal deployment. This really becomes critical
when the
mix of different CPU types, GPUs and ram are to be
considered in
future deployments, regardless if you outsource or run your own
cluster. Hardware vendors are going to want to sell their
products
to as wide of a customer base a possible and customers are
going to
demand seamless management for expansion of resources.
Furthermore,
as a consultant my experiences are that much of the future
market is
going to demand outsourced, hybrid and in-house options as a
fundamental tenant of cluster resource adoption.
hth,
James
*Joris Van Remoortere*
Mesosphere
On Tue, Jun 14, 2016 at 3:02 PM, Du, Fan
<fan...@intel.com <mailto:fan...@intel.com>
<mailto:fan...@intel.com <mailto:fan...@intel.com>>
<mailto:fan...@intel.com <mailto:fan...@intel.com>
<mailto:fan...@intel.com <mailto:fan...@intel.com>>>> wrote:
On 2016/6/14 20:32, Joris Van Remoortere wrote:
#1. Stick with attributes for rack awareness
I don't think this is the right approach; however,
there seem to
be 2
components to this discussion:
1. How the values are presented (Attributes
vs. a new
type-aware
structure)
2. How the values are determined (scripts vs.
automation vs.
modules)
It seems you are more interested in working on
#2. If
that's the
case,
please make sure that you don't assume
anything about
#1, as we not
everyone agrees that we will use the existing
attributes in the
future.
On the condition of compatible with existing framework
which already
rely on parsing attributes for rack information.
Quotes from my original statements:
> For compatibility with existing framework, I
tend to be
ok with using
> attributes to convey the rack information
By all means, no matter what internal structures
to use,
current
behavior should be honored. btw, I'm also thinking
about
#1, it's
too earlier to bring up the details so far before the
ticket got
ACCEPTED.
Any way, I'm always open to all kind of
discussion, thanks
for your
comments! Joris.
For #2, you should focus on an API (module or
script
results)
that will
support all the different methods the
community wants
to use to
generate
this data.
As you mentioned, updating the values for a
running
agent is not
straightforward. A lot of design work will
need to go
into how these
values are propagated to frameworks that have made
assumptions about
them, and which values are allowed to change
vs. not.
—
*Joris Van Remoortere*
Mesosphere
On Tue, Jun 14, 2016 at 10:04 AM, Aaron Carey
<aca...@ilm.com <mailto:aca...@ilm.com>
<mailto:aca...@ilm.com <mailto:aca...@ilm.com>>
<mailto:aca...@ilm.com <mailto:aca...@ilm.com>
<mailto:aca...@ilm.com <mailto:aca...@ilm.com>>>
<mailto:aca...@ilm.com <mailto:aca...@ilm.com>
<mailto:aca...@ilm.com <mailto:aca...@ilm.com>>
<mailto:aca...@ilm.com <mailto:aca...@ilm.com>
<mailto:aca...@ilm.com <mailto:aca...@ilm.com>>>>> wrote:
#3 would be very helpful for us. Also
related:
https://issues.apache.org/jira/browse/MESOS-3059
--
Aaron Carey
Production Engineer - Cloud Pipeline
Industrial Light & Magic
London
020 3751 9150
________________________________________
From: Du, Fan [fan...@intel.com
<mailto:fan...@intel.com>
<mailto:fan...@intel.com <mailto:fan...@intel.com>>
<mailto:fan...@intel.com <mailto:fan...@intel.com>
<mailto:fan...@intel.com <mailto:fan...@intel.com>>>
<mailto:fan...@intel.com
<mailto:fan...@intel.com> <mailto:fan...@intel.com
<mailto:fan...@intel.com>>
<mailto:fan...@intel.com <mailto:fan...@intel.com>
<mailto:fan...@intel.com <mailto:fan...@intel.com>>>>]
Sent: 14 June 2016 07:24
To: user@mesos.apache.org
<mailto:user@mesos.apache.org>
<mailto:user@mesos.apache.org
<mailto:user@mesos.apache.org>> <mailto:user@mesos.apache.org
<mailto:user@mesos.apache.org>
<mailto:user@mesos.apache.org
<mailto:user@mesos.apache.org>>>
<mailto:user@mesos.apache.org
<mailto:user@mesos.apache.org>
<mailto:user@mesos.apache.org
<mailto:user@mesos.apache.org>> <mailto:user@mesos.apache.org
<mailto:user@mesos.apache.org>
<mailto:user@mesos.apache.org
<mailto:user@mesos.apache.org>>>>;
d...@mesos.apache.org <mailto:d...@mesos.apache.org>
<mailto:d...@mesos.apache.org <mailto:d...@mesos.apache.org>>
<mailto:d...@mesos.apache.org
<mailto:d...@mesos.apache.org> <mailto:d...@mesos.apache.org
<mailto:d...@mesos.apache.org>>>
<mailto:d...@mesos.apache.org
<mailto:d...@mesos.apache.org>
<mailto:d...@mesos.apache.org
<mailto:d...@mesos.apache.org>> <mailto:d...@mesos.apache.org
<mailto:d...@mesos.apache.org>
<mailto:d...@mesos.apache.org
<mailto:d...@mesos.apache.org>>>>
Cc: Joris Van Remoortere;
vinodk...@apache.org <mailto:vinodk...@apache.org>
<mailto:vinodk...@apache.org <mailto:vinodk...@apache.org>>
<mailto:vinodk...@apache.org
<mailto:vinodk...@apache.org> <mailto:vinodk...@apache.org
<mailto:vinodk...@apache.org>>>
<mailto:vinodk...@apache.org
<mailto:vinodk...@apache.org>
<mailto:vinodk...@apache.org
<mailto:vinodk...@apache.org>> <mailto:vinodk...@apache.org
<mailto:vinodk...@apache.org>
<mailto:vinodk...@apache.org
<mailto:vinodk...@apache.org>>>>
Subject: Re: Rack awareness support for Mesos
Hi everyone
Let me summarize the discussion about Rack
awareness in the
community so
far. First thanks for all the comments,
advices or
challenges! :)
#1. Stick with attributes for rack awareness
For compatibility with existing
framework, I tend
to be ok
with using
attributes to convey the rack
information, but
with the
goal to do it
automatically, easy to maintain and with good
attributes
schema. This
will bring up below question where the
controversy
starts.
#2. Scripts vs programmatic way
Both can be used to set attributes, I've
made my
arguments
in the Jira
and the Design doc, I'm not gonna to
argue more
here. But
please take a
look discussion at MESOS-3366 before,
which allow
resources/attributes
discovery.
A module to implement
*slaveAttributesDecorator*
hook will
works like
a charm here in a static way. And need to
justify
attributes updating.
#3. Allow updating attributes
Several cases need to be covered here:
a). Mesos runs inside VMs or container,
where live
migration happens, so
rack information need to be updated.
b). LLDP packets are broadcasted by the
interval
10s~30s, a
vendor
specific implementation, and rack
information are
usually
stored in LLDP
daemon to be queried. Worst cases(nodes fresh
reboot, or
daemon restart)
would be: Mesos slave have to wait
10s~30s for a
valid rack
information
before register to master. Allow updating
attributes will
mitigate this
problem.
c). Framework affinity
Framework X prefers to run on the same
nodes with
another
framwork Y.
For example, it's desirable for Shark or
Spark-SQL to
reside on the
*worker* node where Alluxio(former
Tachyon) to
gain more
performance
boosting as SPARK-6707 ticket message
{tachyon=true;us-east-1=false}
If framework could advertise agent
attributes in the
ResourcesOffer
process, awesome!
#4. Rearrange agents in a more scalable
manner,
like per
rack basis
Randomly offering agents resource to
framework
does not
improve data
locality, imagine the likelihood of a
framework
getting
resources
underneath the same rack, at the scale of
+30000
nodes.
Moreover time to
randomly shuffle the agents also grows.
How about rearranging the agent in a per rack
basis, and a
minor change
to the way how resources are allocated
will fix this.
I might not see the whole picture here, so
comments are
welcomed!
On 2016/6/6 17:17, Du, Fan wrote:
> Hi, Mesos folks
>
> I’ve been thinking about Mesos rack
awareness
support
for a while,
>
> it’s a common interest for lots of
data center
applications to
provide
> data locality,
>
> fault tolerance and better task
placement. Create
MESOS-5545 to track
> the story,
>
> and here is the initial design doc [1] to
support rack
awareness
in Mesos.
>
> Looking forward to hear any comments
from end
user and other
developers,
>
> Thanks!
>
> [1]:
>
https://docs.google.com/document/d/1rql_LZSwtQzBPALnk0qCLsmxcT3-zB7X7aJp-H3xxyE/edit?usp=sharing
>