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.

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

Reply via email to