@Fan,

In the community meeting a question was raised around which frameworks
might be ready to use this.
Can you provide some more context for immediate use cases on the framework
side?

—
*Joris Van Remoortere*
Mesosphere

On Wed, Jun 15, 2016 at 5:04 PM, james <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>> 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>>> 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>>>> 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>>>]
>>                       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>>>;
>>         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>>>
>>
>>
>>                       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
>>                        >
>>
>>
>>
>>
>>
>>
>

Reply via email to