From: Loic Dachary <loic@dachary.org>
To: Milosz Tanski <milosz@adfin.com>
Cc: Ceph Development <ceph-devel@vger.kernel.org>
Subject: Re: Storing cls and erasure code plugins in a pool
Date: Sun, 07 Sep 2014 18:13:20 +0200 [thread overview]
Message-ID: <540C8420.7020103@dachary.org> (raw)
In-Reply-To: <CANP1eJG=5bDx3JeFNfUgfq7TCS7QvKnAsXD+=XzcJK2vm-Uyxg@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 2452 bytes --]
On 07/09/2014 15:38, Milosz Tanski wrote:
> If you're planning on having plugins that are not shipped with the
> host software you have to worry about both API and ABI stability.
> Traditionally (and in my personal experience) keeping a C++ ABI
> compatible is hard. For those reasons, I would strongly campaign for
> having the plugins interface be in C (or et least their interface
> would be C linkage).
Hi Milosz,
That's a good point indeed.
> Otherwise here's some things you can read read about C++ ABI stability
> (from the KDE people):
> https://techbase.kde.org/Policies/Binary_Compatibility_Issues_With_C++
Thanks, I did not even think C++ ABI compatibility was possible at all ;-) The web site is down at the moment but I'll take a look.
Cheers
>
> This are my 2 cents based on my past experience.
>
> On Sun, Sep 7, 2014 at 4:26 AM, Loic Dachary <loic@dachary.org> wrote:
>> Hi Ceph,
>>
>> There is a need for a cluster to share code such as cls https://github.com/ceph/ceph/tree/master/src/cls or erasure code plugins https://github.com/ceph/ceph/tree/master/src/erasure-code/.
>>
>> These plugins could have a life cycle independent of Ceph, as long as they comply to the supported API ( https://github.com/ceph/ceph/blob/master/src/erasure-code/ErasureCodeInterface.h ). For erasure code plugins it currently works this way (or it will as soon as https://github.com/ceph/ceph/pull/2397 is merged):
>>
>> a) upgrade from Hammer to I* half the OSD nodes. The new I* have new erasure code plugins
>> b) the MON will refuse to create an erasure coded pool using the new I* plugins, otherwise the Hammer nodes will find themselves unable to participate in the pool
>>
>> Instead it could work this way:
>>
>> a) upgrade from Hammer to I* half the OSD nodes. The new I* have new erasure code plugins
>> b) the new erasure code plugins are uploaded to a "plugins" pool
>> c) an erasure coded pool is created using a new plugin from I*
>> d) the Hammer OSD downloads the plugin from the pool and can participate in the pool
>>
>> It is easier said than done and there are a lot of details to consider. However it not different from maintaining an Operating System that includes shared libraries and the path to do so properly is well known.
>>
>> Thoughts ?
>>
>> Cheers
>>
>> --
>> Loïc Dachary, Artisan Logiciel Libre
>>
>
>
>
--
Loïc Dachary, Artisan Logiciel Libre
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 263 bytes --]
next prev parent reply other threads:[~2014-09-07 16:13 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-07 8:26 Storing cls and erasure code plugins in a pool Loic Dachary
2014-09-07 13:38 ` Milosz Tanski
2014-09-07 16:13 ` Loic Dachary [this message]
2014-09-07 19:42 ` Yehuda Sadeh
2014-09-07 20:27 ` Loic Dachary
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=540C8420.7020103@dachary.org \
--to=loic@dachary.org \
--cc=ceph-devel@vger.kernel.org \
--cc=milosz@adfin.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.