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).

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++

This are my 2 cents based on my past experience.

On Sun, Sep 7, 2014 at 4:26 AM, Loic Dachary <[email protected]> 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
>



-- 
Milosz Tanski
CTO
16 East 34th Street, 15th floor
New York, NY 10016

p: 646-253-9055
e: [email protected]
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to