Re: Adding a proprietary key value store to CEPH

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

We implemented an objectstore factory which does this, and could probably be upstreamed.

Matt

----- "Somnath Roy" <Somnath.Roy@xxxxxxxxxxx> wrote:

> Yes, we will take care of both, thanks..
> 
> -----Original Message-----
> From: Sage Weil [mailto:sage@xxxxxxxxxxxx] 
> Sent: Wednesday, February 25, 2015 3:25 PM
> To: Somnath Roy
> Cc: Varada Kari; Ceph Development
> Subject: RE: Adding a proprietary key value store to CEPH
> 
> On Wed, 25 Feb 2015, Somnath Roy wrote:
> > Sage,
> > Yes, agreed..
> > But, since k/v store is already added and we are planning to derive
> 
> > from that we didn't change that. Do you want us to implement entire
> 
> > k/vstore to be a dynamically loadable along with the k/vdb
> underneath ?
> 
> Both would be nice.  I confess I haven't looked closely at the EC
> backend implementation, but I expect that this is quite simple: it's
> just a matter of exposing a function that instantiates an instance of
> the ObjectStore or KeyValueDB class, right?
> 
> sage
> 
> 
> > 
> > Thanks & Regards
> > Somnath
> > 
> > -----Original Message-----
> > From: ceph-devel-owner@xxxxxxxxxxxxxxx 
> > [mailto:ceph-devel-owner@xxxxxxxxxxxxxxx] On Behalf Of Sage Weil
> > Sent: Wednesday, February 25, 2015 6:46 AM
> > To: Varada Kari
> > Cc: Ceph Development
> > Subject: RE: Adding a proprietary key value store to CEPH
> > 
> > On Wed, 25 Feb 2015, Varada Kari wrote:
> > > Hi Sage,
> > > 
> > > Thanks. Will wait for your reply.
> > > Meanwhile, Can I submit a blue print for this for next release?
> > 
> > Yeah, definitely.
> > 
> > FWIW the plugin layer I think will be most interesting going forward
> is the ObjectStore level, not just the KeyValueDB level...
> > 
> > sage
> > 
> > 
> > > 
> > > Thanks,
> > > Varada
> > > 
> > > -----Original Message-----
> > > From: Sage Weil [mailto:sage@xxxxxxxxxxxx]
> > > Sent: Tuesday, February 24, 2015 10:21 PM
> > > To: Varada Kari
> > > Cc: Ceph Development
> > > Subject: Re: Adding a proprietary key value store to CEPH
> > > 
> > > Hi Varada,
> > > 
> > > On Tue, 24 Feb 2015, Varada Kari wrote:
> > > > Hi Sage,
> > > >
> > > > We are trying to integrate a new proprietary key value store to
> CEPH. To integrate this KV-store, which is a closed source shared
> library, we propose a new class to CEPH called PropDBStore which does
> a dlopen and imports the required symbols. This framework will help in
> integrating vendor specific extensions to CEPH.
> > > >
> > > > The gist of the implementation is as follows.
> > > >
> > > > 1. Implement a wrapper around the proprietary KVStore. Let us
> call it as KVExtension. This is a shared library which implements all
> interfaces required by CEPH KeyValueStore.
> > > > 2. A new class is derived from KeyValueDB called PropDBStore,
> which honors the semantics of KeyvalueStore and KeyValueDB. This class
> acts as mediator between CEPH and KVExtension.  This class transforms
> bufferlist etc... to const char pointers or strings for the extension
> to understand.
> > > > 3. PropDBStore, loads (dlopen) the KVExtension during OSD
> initialization.  Path to the KVExtension can be mentioned in
> ceph.conf.
> > > > 4. Interfaces that needs to be implemented in KVExtension, which
> are imported by the PropDBStore are added in a new header called
> PropDBWrapper.h.  This header contains the signatures for the
> necessary interfaces like init(), close(), submit_transaction(), get()
> and get_iterator(). Similarly for Iterator functionality,
> PropDBIterator.h, which specifies the signatures of seek_to_first (),
> seek_to_last(), lower_bound() and upper_bound() etc...  PropDBStore
> includes these headers to import the symbols, using dlsym().
> > > > 5. Choosing the proprietary DB as Backend to the OSD is
> controlled/managed by config options of the ceph (/etc/ceph/ceph.conf)
> like rocksdb or leveldb.
> > > > 6. Rest of the existing functionality is not disturbed by this
> change. Changing the osd backend option will change backend
> implementation. But this change is not dynamic. The type of the
> backend should be chosen at osd creation time and osd will continue
> use that backend till that osd is reformatted again.
> > > > 7. The new KVStore we are trying to integrate works on a raw
> partition, so we divided the osd drive into two partitions. One
> partition is given to osd Meta data (super block, fsid etc...), and
> the other is given to the new db to manage it. OSD partition is now
> not the entire disk, but 2-4GB which needed for the metadata.
> > > 
> > > This sounds like a good approach to link to pretty much any
> external backend (modulo the dlopen part).  I need to check with
> lawyer types before I can promise we'll be able to merge something
> like this into the main ceph.git, though!
> > > 
> > > Thanks-
> > > sage
> > > 
> > > ________________________________
> > > 
> > > 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 majordomo@xxxxxxxxxxxxxxx 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 majordomo@xxxxxxxxxxxxxxx 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 majordomo@xxxxxxxxxxxxxxx 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 majordomo@xxxxxxxxxxxxxxx
> 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 
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux