+1.

On Sep 22, 2014, at 5:22 PM, Niklas Nielsen <nik...@mesosphere.io> wrote:

> Agreed - I can do early morning PST any day during this week (for people
> dialing in from the east coast and Europe).
> 
> Niklas
> 
> On 22 September 2014 07:15, Tim St Clair <tstcl...@redhat.com> wrote:
> 
>> Folks,
>> 
>> I think this thread has fallen off the rails a bit, perhaps we could get a
>> tcon/hangout going for this again.
>> 
>> I would be happy to moderate if needed, but it's pretty clear to me to
>> that trying to hash this out in an email thread is becoming
>> couter-productive.
>> 
>> Cheers,
>> Tim
>> 
>> ----- Original Message -----
>>> From: "Dominic Hamon" <dha...@twitter.com.INVALID>
>>> To: "dev" <dev@mesos.apache.org>
>>> Sent: Saturday, September 20, 2014 9:21:59 AM
>>> Subject: Re: Mesos Modules Design
>>> 
>>> On Fri, Sep 19, 2014 at 2:43 PM, Niklas Nielsen <nik...@mesosphere.io>
>>> wrote:
>>> 
>>>> Hi Dominic,
>>>> 
>>>> (response inlined)
>>>> 
>>>> On 19 September 2014 13:03, Dominic Hamon <dha...@twopensource.com>
>> wrote:
>>>> 
>>>>> I'm sorry, but I'm still having a hard time understanding why this
>> needs
>>>> to
>>>>> be dynamic.
>>>>> 
>>>>> If the mesos core is split into modules that are built as standalone
>>>>> libraries (static) then at link time the right combination of
>> libraries
>>>> can
>>>>> be bundled together to create the end result. If you want to get even
>>>>> smarter, we can have default versions that are linked in to the mesos
>>>> core
>>>>> as weak symbols so later linked libraries can override the defaults.
>> This
>>>>> may mean that we move to static linking across the board, but frankly
>>>> there
>>>>> are a few benefits to that approach.
>>>> 
>>>> 
>>>> This works for some, but not all use cases.
>>>> One use-case where it _does_ make sense to statically bake into the
>> image
>>>> could be: https://issues.apache.org/jira/browse/MESOS-1330
>>>> That be, you probably rarely want to swap network transport
>> implementations
>>>> in and out on per-run basis but will know up front which one to
>> configure
>>>> and use.
>>>> 
>>>> On the other hand, having to relink and rebuilding give users a poor
>>>> experience and makes it hard to select (or unselect) custom components.
>>>> Using a prebuilt package and point against libraries is a pretty common
>>>> work-flow: Apache web server relies heavily on modules from dynamic
>>>> libraries.
>>>> 
>>>> 
>>> ​I'm going to argue against this, so please bear with me while I work
>>> through it, and please point out anywhere that my assertions are wrong.
>>> 
>>> The proposal you are suggesting requires the following:
>>> 
>>> - callsites need to be modules aware to use the right factory method to
>>> instantiate the modular object
>>> - mesos-core owners need to be aware of modules and versioning when they
>>> change the abstract API
>>> - module owners need to be aware of the modules API and versioning
>>> - customers (end-users) have to be modules aware and set their runtime
>>> configuration correctly
>>> - errors in versioning or modules will only be caught at runtime
>>> 
>>> My alternative proposal requires the following:
>>> 
>>> -  module owners need to be aware of API changes during core upgrades
>>> - issues are caught at compile time by module owners
>>> - customers (end-users) are unaware of modules and only need to know
>> about
>>> per module configuration (kerberos attributes, for instance) not the
>>> modules system and configuration
>>> 
>>> In short, your proposal adds more complexity and shifts the burden of
>>> knowledge and responsibility to every agent, instead of keeping it with
>> the
>>> module owner where it belongs.
>>> 
>>> I think the solution that's been put up for review is clever, but I don't
>>> think it solves the problem in the right way for anyone involved. Please
>>> rethink your approach to take that into account.
>>> 
>>> 
>>> 
>>>> TL;DR I don't see the two approaches to be mutually exclusive and we
>> can
>>>> get a lot of leverage with the current design but we want to be able
>> to do
>>>> this with static linking too. (To Tim St Clair's point)
>>>> 
>>>> 
>>>>> 
>>>> 
>>>> 
>>>> 
>>>>> With the approach as defined, does this mean that the default
>> versions
>>>> will
>>>>> also have to be reimplemented as modules?
>>>>> 
>>>> 
>>>> Not necessary. Mesos default implementations stays as is. See Bernd's
>>>> comment.
>>>> 
>>>> 
>>>>> 
>>>>> Has any effort been put into determining the performance overhead of
>> the
>>>>> approach as specified?
>>>>> 
>>>> 
>>>> It won't affect Mesos if you are not using modules. The call sites
>> will be
>>>> virtual dispatches no matter whether you are using modules or
>>>> internal/default implementations.
>>>> There is a performance penalty of not being able to do global
>> optimizations
>>>> within the module, but that is the trade-off of implementing a dynamic
>>>> loadable module.
>>>> 
>>>> 
>>>>> 
>>>>> On Fri, Sep 19, 2014 at 11:35 AM, Niklas Nielsen <
>> nik...@mesosphere.io>
>>>>> wrote:
>>>>> 
>>>>>> Hi everyone,
>>>>>> 
>>>>>> We have been iterating on a design for pluggable modules in Mesos
>>>> lately
>>>>>> and wanted to get a last round of feedback before putting out patch
>>>> sets.
>>>>>> 
>>>>>> Tim St Clair, Ben Hindman and I started the discussion (and work)
>> on
>>>> this
>>>>>> subsystem https://issues.apache.org/jira/browse/MESOS-1224 and
>>>>>> https://issues.apache.org/jira/browse/MESOS-1384.
>>>>>> Kapil and Bernd took over the work (shepherded by Ben H and I) and
>> have
>>>>>> expanded on the original design to cope with api/modules/mesos
>>>> versioning
>>>>>> semantics and be extensible enough to cope future changes in the
>>>> modules
>>>>>> subsystem (dealing with modules dependencies, etc).
>>>>>> 
>>>>>> The latest description of the modules system has been captured in:
>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>> https://cwiki.apache.org/confluence/display/MESOS/DRAFT+Design+Doc+-+Mesos+Modules
>>>>>> (for those of you who don't want to read through the JIRA threads).
>>>>>> 
>>>>>> We have an implementation ready based on this design and will be
>>>> sharing
>>>>> /
>>>>>> starting review rounds start next week.
>>>>>> 
>>>>>> Feel free to use this thread if you have any questions.
>>>>>> 
>>>>>> Cheers,
>>>>>> Niklas
>>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> --
>>>>> Dominic Hamon | @mrdo | Twitter
>>>>> *There are no bad ideas; only good ideas that go horribly wrong.*
>>>>> 
>>>> 
>>>> Hope that helps; if not, we'd be happy to jump on a call.
>>>> 
>>>> Niklas
>>>> 
>>> 
>>> 
>>> 
>>> --
>>> Dominic Hamon | @mrdo | Twitter
>>> *There are no bad ideas; only good ideas that go horribly wrong.*
>>> 
>> 
>> --
>> Cheers,
>> Timothy St. Clair
>> Red Hat Inc.
>> 

Reply via email to