Yes, I'm referring to the C++ vtable.

Allen Samuels
Software Architect, Emerging Storage Solutions 

2880 Junction Avenue, Milpitas, CA 95134
T: +1 408 801 7030| M: +1 408 780 6416
allen.samu...@sandisk.com

-----Original Message-----
From: James (Fei) Liu-SSI [mailto:james....@ssi.samsung.com] 
Sent: Monday, September 14, 2015 9:48 AM
To: Allen Samuels <allen.samu...@sandisk.com>; Varada Kari 
<varada.k...@sandisk.com>; Sage Weil <s...@newdream.net>; Matt W. Benjamin 
<m...@cohortfs.com>; Loic Dachary <l...@dachary.org>
Cc: ceph-devel <ceph-devel@vger.kernel.org>
Subject: RE: loadable objectstore

Hi Allen,
    I am not exactly  sure what the vtable is. Is the vtable same as vtable 
from  C++ object concept?  IMHP, the procedure linkage table was used to 
redirect position-independent function calls to absolute location of function 
based on the ELF format spec[1]. The performance hit for shared library might 
be negligible. There is very old articles to talk about the performance tests 
between shared vs static libs[2].  I am not following  up the lasted 
complier/linker technologies any more. Would be great to know any new updates.  

[1]http://www.skyfree.org/linux/references/ELF_Format.pdf
[2]https://gcc.gnu.org/ml/gcc/2004-06/msg01956.html 

Regards,
James

-----Original Message-----
From: Allen Samuels [mailto:allen.samu...@sandisk.com]
Sent: Saturday, September 12, 2015 1:35 PM
To: Varada Kari; James (Fei) Liu-SSI; Sage Weil; Matt W. Benjamin; Loic Dachary
Cc: ceph-devel
Subject: RE: loadable objectstore

Performance impact after initialization will be zero. All of the call sequences 
are done as vtable dynamic dispatches on the global ObjectStore instance. This 
type of call sequence doesn't matter whether it's dynamic or statically linked, 
they are the same (a simple indirection through the vtbl which is loaded from a 
known constant offset in the object).


Allen Samuels
Chief Software Architect, Emerging Storage Solutions 

951 SanDisk Drive, Milpitas, CA 95035
T: +1 408 801 7030| M: +1 408 780 6416
allen.samu...@sandisk.com

-----Original Message-----
From: ceph-devel-ow...@vger.kernel.org 
[mailto:ceph-devel-ow...@vger.kernel.org] On Behalf Of Varada Kari
Sent: Friday, September 11, 2015 9:34 PM
To: James (Fei) Liu-SSI <james....@ssi.samsung.com>; Sage Weil 
<s...@newdream.net>; Matt W. Benjamin <m...@cohortfs.com>; Loic Dachary 
<l...@dachary.org>
Cc: ceph-devel <ceph-devel@vger.kernel.org>
Subject: RE: loadable objectstore

Hi James,

Please find the responses inline.

varada

> -----Original Message-----
> From: James (Fei) Liu-SSI [mailto:james....@ssi.samsung.com]
> Sent: Saturday, September 12, 2015 12:13 AM
> To: Varada Kari <varada.k...@sandisk.com>; Sage Weil 
> <s...@newdream.net>; Matt W. Benjamin <m...@cohortfs.com>; Loic 
> Dachary <l...@dachary.org>
> Cc: ceph-devel <ceph-devel@vger.kernel.org>
> Subject: RE: loadable objectstore
>
> Hi Varada,
>   Got a chance to go through the code. Great job. It is much cleaner . 
> Several
> questions:
>   1. What you think about the performance impact with the new 
> implementation? Such  as dynamic library vs static link?
[Varada Kari] Haven't measured the performance yet, but there will be some hit 
due to static vs dynamic. But that shouldn't be a major degradation, but I will 
hold on till we have some perf runs to figure that out.
>   2. Could any vendor just provide a objectstore interfaces complied 
> dynamic binary library for their own storage engine with new factory 
> framework?
[Varada Kari] That was one of the design motives for this change. Yes any 
backend adhering the interfaces of object store can integrate with osd. All 
they need to do provide a factory interface and the required version and init 
functionality additionally to all the required object store interfaces.
>
>   Regards,
>   James
>
>
> -----Original Message-----
> From: ceph-devel-ow...@vger.kernel.org [mailto:ceph-devel- 
> ow...@vger.kernel.org] On Behalf Of Varada Kari
> Sent: Friday, September 11, 2015 3:28 AM
> To: Sage Weil; Matt W. Benjamin; Loic Dachary
> Cc: ceph-devel
> Subject: RE: loadable objectstore
>
> Hi Sage/ Matt,
>
> I have submitted the pull request based on wip-plugin branch for the 
> object store factory implementation at https://github.com/ceph/ceph/pull/5884 
> .
> Haven't rebased to the master yet. Working on rebase and including new 
> store in the factory implementation.  Please have a look and let me 
> know your comments. Will submit a rebased PR soon with new store integration.
>
> Thanks,
> Varada
>
> -----Original Message-----
> From: ceph-devel-ow...@vger.kernel.org [mailto:ceph-devel- 
> ow...@vger.kernel.org] On Behalf Of Varada Kari
> Sent: Friday, July 03, 2015 7:31 PM
> To: Sage Weil <s...@newdream.net>; Adam Crume <adamcr...@gmail.com>
> Cc: Loic Dachary <l...@dachary.org>; ceph-devel <ceph- 
> de...@vger.kernel.org>; Matt W. Benjamin <m...@cohortfs.com>
> Subject: RE: loadable objectstore
>
> Hi All,
>
> Not able to make much progress after making common as a shared object 
> along with object store.
> Compilation of the test binaries are failing with 
> "./.libs/libceph_filestore.so:
> undefined reference to `tracepoint_dlopen'".
>
>   CXXLD    ceph_streamtest
> ./.libs/libceph_filestore.so: undefined reference to `tracepoint_dlopen'
> collect2: error: ld returned 1 exit status
> make[3]: *** [ceph_streamtest] Error 1
>
> But libfilestore.so is linked with lttng-ust.
>
> src/.libs$ ldd libceph_filestore.so
>         libceph_keyvaluestore.so.1 => /home/varada/obs-factory/plugin-
> work/src/.libs/libceph_keyvaluestore.so.1 (0x00007f5e50f50000)
>         libceph_os.so.1 => /home/varada/obs-factory/plugin-
> work/src/.libs/libceph_os.so.1 (0x00007f5e4f93a000)
>         libcommon.so.1 => /home/varada/ obs-factory/plugin-
> work/src/.libs/libcommon.so.1 (0x00007f5e4b5df000)
>         liblttng-ust.so.0 =>
> /usr/lib/x86_64-linux-gnu/liblttng-ust.so.0
> (0x00007f5e4b179000)
>         liblttng-ust-tracepoint.so.0 =>
> /usr/lib/x86_64-linux-gnu/liblttng-ust-
> tracepoint.so.0 (0x00007f5e4a021000)
>         liburcu-bp.so.1 => /usr/lib/liburcu-bp.so.1 (0x00007f5e49e1a000)
>         liburcu-cds.so.1 => /usr/lib/liburcu-cds.so.1
> (0x00007f5e49c12000)
>
> Edited the above output just show the dependencies.
> Did anyone face this issue before?
> Any help would be much appreciated.
>
> Thanks,
> Varada
>
> -----Original Message-----
> From: ceph-devel-ow...@vger.kernel.org [mailto:ceph-devel- 
> ow...@vger.kernel.org] On Behalf Of Varada Kari
> Sent: Friday, June 26, 2015 3:34 PM
> To: Sage Weil
> Cc: Loic Dachary; ceph-devel; Matt W. Benjamin
> Subject: RE: loadable objectstore
>
> Hi,
>
> Made some more changes to resolve lttng problems at 
> https://github.com/varadakari/ceph/commits/wip-plugin.
> But couldn’t by pass the issues. Facing some issues like mentioned below.
>
> ./.libs/libceph_filestore.so: undefined reference to `tracepoint_dlopen'
>
> Compiling with -llttng-ust is not resolving the problem. Seen some 
> threads in devel list before, mentioning this problem.
> Can anyone take a look and guide me to fix this problem?
>
> Haven't made the changes to change the plugin name etc... will be 
> making them as part of cleanup.
>
> Thanks,
> Varada
>
> -----Original Message-----
> From: ceph-devel-ow...@vger.kernel.org [mailto:ceph-devel- 
> ow...@vger.kernel.org] On Behalf Of Varada Kari
> Sent: Monday, June 22, 2015 8:57 PM
> To: Matt W. Benjamin
> Cc: Loic Dachary; ceph-devel; Sage Weil
> Subject: RE: loadable objectstore
>
> Hi Matt,
>
> Majority of the changes are segregating the files to corresponding 
> shared object and creating a factory object. And the naming is mostly 
> taken from Erasure-coding plugins. Want a good naming convention :-), 
> hence a preliminary review. Do agree, we have lot of loadable 
> interfaces, and I think we are in the way of making them on-demand (if
> possible) loadable modules.
>
> Varada
>
> -----Original Message-----
> From: Matt W. Benjamin [mailto:m...@cohortfs.com]
> Sent: Monday, June 22, 2015 8:37 PM
> To: Varada Kari
> Cc: Loic Dachary; ceph-devel; Sage Weil
> Subject: Re: loadable objectstore
>
> Hi,
>
> It's just aesthetic, but it feels clunky to change the names of well 
> known modules to <something>Plugin--esp. if that generalizes forward 
> to new loadable modules (and we have a lot of loadable interfaces).
>
> Matt
>
> ----- "Varada Kari" <varada.k...@sandisk.com> wrote:
>
> > Hi Sage,
> >
> > Please find the initial implementation of objects store factory 
> > (initial cut) at
> >
> https://github.com/varadakari/ceph/commit/9d5fe2fecf38ba106c7c7b7a3ed
> e
> > 4f189ec7e1c8
> >
> > This is still work in progress branch. Right now I am facing Lttng 
> > issues,
> > LTTng-UST: Error (-17) while registering tracepoint probe. Duplicate 
> > registration of tracepoint probes having the same name is not allowed.
> >
> > Might be an issue with libcommon inclusion. Trying resolving the 
> > issue now. Seems I need to make libcommon also as a shared object to 
> > avoid the duplicates, static linking is a problem here.
> > Any suggestions or comments on this problem?
> >
> >
> > I have commented out test binary (ceph_test_keyvaluedb_atomicity) 
> > compilation, due to unresolved symbols for g_ceph_context and g_conf.
> > Not able to fix/workaround the problem so far.
> >
> > Can you please review if this is what in your mind for the factory 
> > implementation?
> >
> > We can extend this implementation to messenger and different backend 
> > of the OSD. Will make those incremental once the base framework is 
> > approved.
> >
> > Thanks,
> > Varada
> >
> >
> >
> > -----Original Message-----
> > From: Sage Weil [mailto:s...@newdream.net]
> > Sent: Tuesday, May 12, 2015 5:11 AM
> > To: Varada Kari
> > Cc: Loic Dachary; Matt W. Benjamin; ceph-devel
> > Subject: RE: loadable objectstore
> >
> > Hi Varada,
> >
> > Any progress on this?
> >
> > Thanks!
> > sage
> >
> > On Sat, 11 Apr 2015, Varada Kari wrote:
> >
> > > Thanks Sage and Loic. Will add the missing pieces and integrate 
> > > the
> > object factory and plugin changes.
> > >
> > > Varada
> > >
> > > -----Original Message-----
> > > From: Sage Weil [mailto:s...@newdream.net]
> > > Sent: Saturday, April 11, 2015 9:19 PM
> > > To: Loic Dachary
> > > Cc: Varada Kari; Matt W. Benjamin; ceph-devel
> > > Subject: Re: loadable objectstore
> > >
> > > On Sat, 11 Apr 2015, Loic Dachary wrote:
> > > > Hi Sage,
> > > >
> > > > It looks like common/PluginRegistry.{h,cc} are missing from 
> > > > 18ad8df1094db52c839dc6b2dc689fc882230acb
> > >
> > > whoops pushed! :)
> > >
> > > sage
> > >
> > > >
> > > > Cheers
> > > >
> > > > On 11/04/2015 16:51, Sage Weil wrote:
> > > > > On Sat, 11 Apr 2015, Varada Kari wrote:
> > > > >> Hi Matt/ Sage,
> > > > >>
> > > > >> Thanks for sharing the pull request. Will work on the items
> > what
> > > > >> sage was mentioning in the comments along with the items in 
> > > > >> the
> > tracker.
> > > > >
> > > > > I pushed a wip-plugin branch with the pattern I had in mind...
> > > > > does this make sense?  It's only compile tested, and still
> > needs
> > > > > preload() methods implemented so that long-running daemons (or 
> > > > > perhaps others?) can preload it all at once.
> > > > >
> > > > > Ideally we would replace ErasurePluginRegistry with this too, 
> > > > > which means the naming of the .so's needs to be a bit more 
> > > > > flexible as the EC plugin scheme is something like 
> > > > > /usr/lib/ceph/erasure-code/libec_$name.so (not a strict 
> > > > > function
> >
> > > > > of type and name).  Or actually, we can just rename the EC 
> > > > > .so's
> >
> > > > > when this goes in?  Since they're explicitly incompatible
> > between
> > > > > versions there is no reason the names need to remain
> > consistent...
> > > > >
> > > > > sage
> > > > >
> > > > >>
> > > > >> Varada
> > > > >>
> > > > >> -----Original Message-----
> > > > >> From: Sage Weil [mailto:s...@newdream.net]
> > > > >> Sent: Saturday, April 11, 2015 4:16 AM
> > > > >> To: Matt W. Benjamin
> > > > >> Cc: Varada Kari; ceph-devel
> > > > >> Subject: Re: loadable objectstore
> > > > >>
> > > > >> On Fri, 10 Apr 2015, Matt W. Benjamin wrote:
> > > > >>> Hi Varada,
> > > > >>>
> > > > >>> I pushed branch hammer-osfactory to 
> > > > >>> https://github.com/linuxbox2/ceph.git
> > > > >>>
> > > > >>> It can at least provide a starting point for discussion, if
> > not
> > > > >>> a jumping off point;  I do think it's basically what Sage
> > described.
> > > > >>
> > > > >> I made a few comments on the pull request.  I think a factory
> > class is the way to go, but we should be able to make the plugin 
> > loading part generic and not interface specific at all...
> > > > >>
> > > > >> sage
> > > > >>
> > > > >>>
> > > > >>> I was able to update the CMake build system to build the 
> > > > >>> tree,
> > I
> > > > >>> haven't attempted Autotools. :(
> > > > >>>
> > > > >>> Regards,
> > > > >>>
> > > > >>> Matt
> > > > >>>
> > > > >>> --
> > > > >>> Matt Benjamin
> > > > >>> CohortFS, LLC.
> > > > >>> 315 West Huron Street, Suite 140A Ann Arbor, Michigan 48103
> > > > >>>
> > > > >>> http://cohortfs.com
> > > > >>>
> > > > >>> tel.  734-761-4689
> > > > >>> fax.  734-769-8938
> > > > >>> cel.  734-216-5309
> > > > >>> --
> > > > >>> To unsubscribe from this list: send the line "unsubscribe
> > ceph-devel"
> > > > >>> in the body of a message to majord...@vger.kernel.org More 
> > > > >>> majordomo info at http://vger.kernel.org/majordomo-info.html
> > > > >>>
> > > > >>>
> > > > >>
> > > > >> ________________________________
> > > > >>
> > > > >> PLEASE NOTE: The information contained in this electronic 
> > > > >> mail
> > message is intended only for the use of the designated recipient(s) 
> > named above. If the reader of this message is not the intended 
> > recipient, you are hereby notified that you have received this 
> > message in error and that any review, dissemination, distribution, 
> > or copying of this message is strictly prohibited. If you have 
> > received this communication in error, please notify the sender by 
> > telephone or e-mail (as shown above) immediately and destroy any and 
> > all copies of this message in your possession (whether hard copies 
> > or electronically stored copies).
> > > > >>
> > > > >> --
> > > > >> To unsubscribe from this list: send the line "unsubscribe 
> > > > >> ceph-devel" in the body of a message to
> > majord...@vger.kernel.org
> > > > >> More majordomo info at
> > > > >> http://vger.kernel.org/majordomo-info.html
> > > > >>
> > > > >>
> > > > > --
> > > > > To unsubscribe from this list: send the line "unsubscribe 
> > > > > ceph-devel" in the body of a message to
> > majord...@vger.kernel.org
> > > > > More majordomo info at
> > http://vger.kernel.org/majordomo-info.html
> > > > >
> > > >
> > > > --
> > > > Loïc Dachary, Artisan Logiciel Libre
> > > >
> > > >
> > > --
> > > To unsubscribe from this list: send the line "unsubscribe
> > ceph-devel"
> > > in the body of a message to majord...@vger.kernel.org More
> majordomo
> >
> > > info at  http://vger.kernel.org/majordomo-info.html
> > >
> > >
>
> --
> Matt Benjamin
> CohortFS, LLC.
> 315 West Huron Street, Suite 140A
> Ann Arbor, Michigan 48103
>
> http://cohortfs.com
>
> tel.  734-761-4689
> fax.  734-769-8938
> cel.  734-216-5309
>
> ________________________________
>
> PLEASE NOTE: The information contained in this electronic mail message 
> is intended only for the use of the designated recipient(s) named 
> above. If the reader of this message is not the intended recipient, 
> you are hereby notified that you have received this message in error 
> and that any review, dissemination, distribution, or copying of this 
> message is strictly prohibited. If you have received this 
> communication in error, please notify the sender by telephone or 
> e-mail (as shown above) immediately and destroy any and all copies of 
> this message in your possession (whether hard copies or electronically stored 
> copies).
>
> N     r  y   b X  ǧv ^ )޺{.n +   z ]z
> N     r  y   b X  ǧv ^ )޺{.n +   z ]z   {ay ʇڙ ,j   f   h   z  w       j:+v 
>   w j m         zZ+
> ݢj"  ! i
>   칻 & ~ &   +-  ݶ  w  ˛   m  ^  b  ^n r   z   h    &   G   h ( 階 ݢj" 
>   m     z
> ޖ   f   h   ~ m
>  {.n +       +%  lzwm  b 맲  r  yǩ ׯzX    ܨ}   Ơz &j:+v        zZ+  +zf   h  
>  ~    i   z  w
> ?    & )ߢf

________________________________

PLEASE NOTE: The information contained in this electronic mail message is 
intended only for the use of the designated recipient(s) named above. If the 
reader of this message is not the intended recipient, you are hereby notified 
that you have received this message in error and that any review, 
dissemination, distribution, or copying of this message is strictly prohibited. 
If you have received this communication in error, please notify the sender by 
telephone or e-mail (as shown above) immediately and destroy any and all copies 
of this message in your possession (whether hard copies or electronically 
stored copies).

N     r  y   b X  ǧv ^ )޺{.n +   z ]z   {ay ʇڙ ,j
  f   h   z  w   
   j:+v   w j m    
    zZ+     ݢj"  ! i
N�����r��y����b�X��ǧv�^�)޺{.n�+���z�]z���{ay�ʇڙ�,j��f���h���z��w���
���j:+v���w�j�m��������zZ+�����ݢj"��!�i

Reply via email to