On Mon, Oct 29, 2018 at 7:48 AM Wido den Hollander <wido@xxxxxxxx> wrote: > On 10/29/18 12:42 PM, kefu chai wrote: > > + ceph-user for more inputs in hope to get more inputs from librados > > and librbd 's C++ interfaces. > > > > On Wed, Oct 24, 2018 at 1:34 AM Jason Dillaman <jdillama@xxxxxxxxxx> wrote: > >> > >> On Tue, Oct 23, 2018 at 11:38 AM kefu chai <tchaikov@xxxxxxxxx> wrote: > >>> > >>> we plan to introduce some non-backward-compatible changes[0] in > >>> librados in the coming nautilus release. to be specific, these changes > >>> are not API/ABI compatible with existing librados2. so i think it's > >>> time to bump up the soversion of librados from 2 to 3. as bumping up > >>> soversion is a major change in the life cycle of a library, i think we > >>> will expect following changes: > >>> > >>> 0. piggyback more non-backward-compatible changes listed in > >>> https://pad.ceph.com/p/librados3 in this change, so we can have less > >>> soversion bump up. > >>> 1. in nautilus, librados3 and librados3-{dev,devel} will be packaged > >>> instead, librados2* will be maintained in LTS releases. > >> > >> Just note that this is going to have a potential ripple effect on > >> non-Ceph packages that use librbd1 if they are also (incorrectly) > >> specifying a dependency on librados2 [1]. > >> > >>> 2. we will have separated C++ and C API librados after this change. so > >>> librados3 will only provide the C API of librados, the C++ API will be > >>> offered by libradospp, (the name may vary if you suggest a better > >>> one). and they will be versioned and packaged separately, and will not > >>> depend on each other. a PR is posted to do this, see [1] > >> > >> Do we have a good idea and/or list about who uses the librados C++ > >> API? I seem to vaguely recall perhaps one or so external users. If > >> librgw/RGW and librbd eventually switch over to something similar to > >> the API being worked on by Adam [2] and if there are no external users > >> of the C++ API, should we take the time now to kill all the legacy C++ > >> API methods prior to the release of Nautilus? > >> > > I know various users who use librados through phprados (PHP) and the > rados-java (Java) bindings. > > Those bindings will need to be updated as well. > > Qemu and libvirt both mainly use librbd, but they use a very small part > of librados to initiate the connection and set configuration values. These should all be using the C API which isn't changing. We would like to take inventory of who uses the librados/librbd C++ APIs outside of the core Ceph project. > >>> 3. in order to enable user to install librados2 and librados3 at the > >>> same time, libceph-common.so will be versioned since nautilus. > >>> libceph-common.so is an internal shared library used by ceph > >>> libraries, tools and daemons. librados depends on libceph-common. > >>> 4. some executables/libraries' dependencies will be updated > >>> accordingly . for instance, librbd will depend on libradospp. > >>> > >>> if this model works fine, i guess we probably could expand it to librbd. > >> > >> It would be interesting to get a feel for who (if anyone) actually > >> uses the librbd C++ interface before heading down that path. AFAIK, > >> it's probably really only the rbd CLI tool -- and that's basically for > >> the convenience of C++-style containers. If it's not being used by > >> anyone else, perhaps our time could be better spent deprecating the > >> library for external use to focus our development and maintanence > >> efforts on the C (and wrapped-C) interface. > >> > > Again, don't forget Qemu/KVM and libvirt who both are very heavy users > of librbd > > Wido > > >>> any concerns? > >>> > >>> BTW, we discussed this topic last year the same time, see > >>> https://www.spinics.net/lists/ceph-devel/msg38830.html =) > >>> > >>> --- > >>> [0] for instance, https://github.com/ceph/ceph/pull/24498 > >>> [1] https://github.com/ceph/ceph/pull/24616 > >>> [2] a trello card for librados3: > >>> https://trello.com/c/pmRkawYV/165-librados3-api-update-cleanup > >>> > >>> -- > >>> Regards > >>> Kefu Chai > >> > >> [1] https://src.fedoraproject.org/rpms/qemu/blob/f29/f/qemu.spec#_192 > >> [2] https://github.com/ceph/ceph/pull/16715 > >> > >> -- > >> Jason > > > > > > > _______________________________________________ > ceph-users mailing list > ceph-users@xxxxxxxxxxxxxx > http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com -- Jason