CEPH filesystem development
 help / color / mirror / Atom feed
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 --]

  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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox