* omap functions in librados.h @ 2012-08-17 19:36 Wido den Hollander 2012-08-17 19:54 ` Gregory Farnum 2012-08-17 20:10 ` Josh Durgin 0 siblings, 2 replies; 8+ messages in thread From: Wido den Hollander @ 2012-08-17 19:36 UTC (permalink / raw) To: ceph-devel@vger.kernel.org Hi, I'm looking for the omap functions in librados.h, but they only seem to be implemented in librados.hpp? I want to store about 6000 objects in a RADOS pool, but I want to give them some attributes I can query for, this should be possible with the omap functionality, shouldn't it? Do to this I want to use phprados, but that is using the C-functions, so that's why I'm asking. Has this been forgotten or is there something blocking it? Wido ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: omap functions in librados.h 2012-08-17 19:36 omap functions in librados.h Wido den Hollander @ 2012-08-17 19:54 ` Gregory Farnum 2012-08-17 20:09 ` Wido den Hollander 2012-08-17 20:10 ` Josh Durgin 1 sibling, 1 reply; 8+ messages in thread From: Gregory Farnum @ 2012-08-17 19:54 UTC (permalink / raw) To: Wido den Hollander; +Cc: ceph-devel@vger.kernel.org On Fri, Aug 17, 2012 at 12:36 PM, Wido den Hollander <wido@widodh.nl> wrote: > Hi, > > I'm looking for the omap functions in librados.h, but they only seem to be > implemented in librados.hpp? > > I want to store about 6000 objects in a RADOS pool, but I want to give them > some attributes I can query for, this should be possible with the omap > functionality, shouldn't it? What do you mean, query for? You can look at an object and ask if it has "foo=bar" in its omap, but you can't say "give me all objects with 'foo=bar'". > Do to this I want to use phprados, but that is using the C-functions, so > that's why I'm asking. > > Has this been forgotten or is there something blocking it? It'll probably be inconvenient as always due to memory management, but it's not blocked by anything that I'm aware of. -Greg ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: omap functions in librados.h 2012-08-17 19:54 ` Gregory Farnum @ 2012-08-17 20:09 ` Wido den Hollander 2012-08-17 20:13 ` Gregory Farnum 2012-08-17 20:45 ` Tommi Virtanen 0 siblings, 2 replies; 8+ messages in thread From: Wido den Hollander @ 2012-08-17 20:09 UTC (permalink / raw) To: Gregory Farnum; +Cc: ceph-devel@vger.kernel.org On 08/17/2012 09:54 PM, Gregory Farnum wrote: > On Fri, Aug 17, 2012 at 12:36 PM, Wido den Hollander <wido@widodh.nl> wrote: >> Hi, >> >> I'm looking for the omap functions in librados.h, but they only seem to be >> implemented in librados.hpp? >> >> I want to store about 6000 objects in a RADOS pool, but I want to give them >> some attributes I can query for, this should be possible with the omap >> functionality, shouldn't it? > What do you mean, query for? You can look at an object and ask if it > has "foo=bar" in its omap, but you can't say "give me all objects with > 'foo=bar'". > Ah, I must have understood that differently. I thought that leveldb was added so you could give objects attributes you could query. So yes: "Give me all objects that have foo=bar" I thought I saw some discussion regarding this. Any ideas besides setting up a own external database with this information? Wido > >> Do to this I want to use phprados, but that is using the C-functions, so >> that's why I'm asking. >> >> Has this been forgotten or is there something blocking it? > It'll probably be inconvenient as always due to memory management, but > it's not blocked by anything that I'm aware of. > -Greg > -- > To unsubscribe from this list: send the line "unsubscribe ceph-devel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: omap functions in librados.h 2012-08-17 20:09 ` Wido den Hollander @ 2012-08-17 20:13 ` Gregory Farnum 2012-08-17 20:24 ` Wido den Hollander 2012-08-18 2:25 ` Xiaopong Tran 2012-08-17 20:45 ` Tommi Virtanen 1 sibling, 2 replies; 8+ messages in thread From: Gregory Farnum @ 2012-08-17 20:13 UTC (permalink / raw) To: Wido den Hollander Cc: ceph-devel@vger.kernel.org, Samuel Just, Eleanor Cawthon On Fri, Aug 17, 2012 at 1:09 PM, Wido den Hollander <wido@widodh.nl> wrote: > > > On 08/17/2012 09:54 PM, Gregory Farnum wrote: >> >> On Fri, Aug 17, 2012 at 12:36 PM, Wido den Hollander <wido@widodh.nl> >> wrote: >>> >>> Hi, >>> >>> I'm looking for the omap functions in librados.h, but they only seem to >>> be >>> implemented in librados.hpp? >>> >>> I want to store about 6000 objects in a RADOS pool, but I want to give >>> them >>> some attributes I can query for, this should be possible with the omap >>> functionality, shouldn't it? >> >> What do you mean, query for? You can look at an object and ask if it >> has "foo=bar" in its omap, but you can't say "give me all objects with >> 'foo=bar'". >> > > Ah, I must have understood that differently. I thought that leveldb was > added so you could give objects attributes you could query. No, leveldb is just a nice fast store — sorry! > So yes: "Give me all objects that have foo=bar" > > I thought I saw some discussion regarding this. > > Any ideas besides setting up a own external database with this information? Well, you could maintain the data in a single rados object, if it doesn't need to get too large. Or Eleanor (one of our friendly interns!) has been writing a prototype distributed b-tree database thingy that you might want to look at. But there are presently no plans to (or ideas of how to) implement a generic query-able set of attributes which are co-located with nodes. -Greg -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: omap functions in librados.h 2012-08-17 20:13 ` Gregory Farnum @ 2012-08-17 20:24 ` Wido den Hollander 2012-08-18 2:25 ` Xiaopong Tran 1 sibling, 0 replies; 8+ messages in thread From: Wido den Hollander @ 2012-08-17 20:24 UTC (permalink / raw) To: Gregory Farnum; +Cc: ceph-devel@vger.kernel.org, Samuel Just, Eleanor Cawthon On 08/17/2012 10:13 PM, Gregory Farnum wrote: > On Fri, Aug 17, 2012 at 1:09 PM, Wido den Hollander <wido@widodh.nl> wrote: >> >> >> On 08/17/2012 09:54 PM, Gregory Farnum wrote: >>> >>> On Fri, Aug 17, 2012 at 12:36 PM, Wido den Hollander <wido@widodh.nl> >>> wrote: >>>> >>>> Hi, >>>> >>>> I'm looking for the omap functions in librados.h, but they only seem to >>>> be >>>> implemented in librados.hpp? >>>> >>>> I want to store about 6000 objects in a RADOS pool, but I want to give >>>> them >>>> some attributes I can query for, this should be possible with the omap >>>> functionality, shouldn't it? >>> >>> What do you mean, query for? You can look at an object and ask if it >>> has "foo=bar" in its omap, but you can't say "give me all objects with >>> 'foo=bar'". >>> >> >> Ah, I must have understood that differently. I thought that leveldb was >> added so you could give objects attributes you could query. > No, leveldb is just a nice fast store — sorry! > >> So yes: "Give me all objects that have foo=bar" >> >> I thought I saw some discussion regarding this. >> >> Any ideas besides setting up a own external database with this information? > > Well, you could maintain the data in a single rados object, if it > doesn't need to get too large. Or Eleanor (one of our friendly > interns!) has been writing a prototype distributed b-tree database > thingy that you might want to look at. > But there are presently no plans to (or ideas of how to) implement a > generic query-able set of attributes which are co-located with nodes. > -Greg > -- I'm talking about 6000 objects ranging from 600MB to 4GB each, so that is even stretching the limit of a single object, that's why I would like that layer on top of librados: http://article.gmane.org/gmane.comp.file-systems.ceph.devel/6176 I would definitely want to take a look at that b-tree database! Wido > To unsubscribe from this list: send the line "unsubscribe ceph-devel" in > the body of a message to majordomo@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 majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: omap functions in librados.h 2012-08-17 20:13 ` Gregory Farnum 2012-08-17 20:24 ` Wido den Hollander @ 2012-08-18 2:25 ` Xiaopong Tran 1 sibling, 0 replies; 8+ messages in thread From: Xiaopong Tran @ 2012-08-18 2:25 UTC (permalink / raw) To: Gregory Farnum Cc: Wido den Hollander, ceph-devel@vger.kernel.org, Samuel Just, Eleanor Cawthon On 08/18/2012 04:13 AM, Gregory Farnum wrote: > On Fri, Aug 17, 2012 at 1:09 PM, Wido den Hollander <wido@widodh.nl> wrote: >> >> >> On 08/17/2012 09:54 PM, Gregory Farnum wrote: >>> >>> On Fri, Aug 17, 2012 at 12:36 PM, Wido den Hollander <wido@widodh.nl> >>> wrote: >>>> >>>> Hi, >>>> >>>> I'm looking for the omap functions in librados.h, but they only seem to >>>> be >>>> implemented in librados.hpp? >>>> >>>> I want to store about 6000 objects in a RADOS pool, but I want to give >>>> them >>>> some attributes I can query for, this should be possible with the omap >>>> functionality, shouldn't it? >>> >>> What do you mean, query for? You can look at an object and ask if it >>> has "foo=bar" in its omap, but you can't say "give me all objects with >>> 'foo=bar'". >>> >> >> Ah, I must have understood that differently. I thought that leveldb was >> added so you could give objects attributes you could query. > No, leveldb is just a nice fast store — sorry! > >> So yes: "Give me all objects that have foo=bar" >> >> I thought I saw some discussion regarding this. >> >> Any ideas besides setting up a own external database with this information? > > Well, you could maintain the data in a single rados object, if it > doesn't need to get too large. Or Eleanor (one of our friendly > interns!) has been writing a prototype distributed b-tree database > thingy that you might want to look at. > But there are presently no plans to (or ideas of how to) implement a > generic query-able set of attributes which are co-located with nodes. > -Greg > -- Where is this distributed b-tree located? Is it open source as well? I'd be very interested too. Regards, Xiaopong -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: omap functions in librados.h 2012-08-17 20:09 ` Wido den Hollander 2012-08-17 20:13 ` Gregory Farnum @ 2012-08-17 20:45 ` Tommi Virtanen 1 sibling, 0 replies; 8+ messages in thread From: Tommi Virtanen @ 2012-08-17 20:45 UTC (permalink / raw) To: Wido den Hollander; +Cc: Gregory Farnum, ceph-devel@vger.kernel.org On Fri, Aug 17, 2012 at 1:09 PM, Wido den Hollander <wido@widodh.nl> wrote: > So yes: "Give me all objects that have foo=bar" > > I thought I saw some discussion regarding this. > > Any ideas besides setting up a own external database with this information? What you want is called a secondary index. Ceph does not maintain one for you. You pretty much have two choices: 1,. use an external service, such as ElasticSearch 2. manage the secondary index yourself: for every key "foo" you want to query for: - as you set object "quux" key "foo" to value "bar", in another pool, set object "foo" key "bar:quux" to value "" (assuming ":" is a safe separator that cannot be in "bar") - on delete, remove the above - on modify, remove old value, add new one - to handle larger scale, shard the index over multiple objects etc. There's a lot of prior art in the nosql ecosystem about this stuff. You could probably take Solandra and port that on top of RADOS instead of Cassandra, fi you really wanted to. https://github.com/tjake/Solandra/ ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: omap functions in librados.h 2012-08-17 19:36 omap functions in librados.h Wido den Hollander 2012-08-17 19:54 ` Gregory Farnum @ 2012-08-17 20:10 ` Josh Durgin 1 sibling, 0 replies; 8+ messages in thread From: Josh Durgin @ 2012-08-17 20:10 UTC (permalink / raw) To: Wido den Hollander; +Cc: ceph-devel@vger.kernel.org On 08/17/2012 12:36 PM, Wido den Hollander wrote: > Hi, > > I'm looking for the omap functions in librados.h, but they only seem to > be implemented in librados.hpp? > > I want to store about 6000 objects in a RADOS pool, but I want to give > them some attributes I can query for, this should be possible with the > omap functionality, shouldn't it? > > Do to this I want to use phprados, but that is using the C-functions, so > that's why I'm asking. > > Has this been forgotten or is there something blocking it? > > Wido The librados C++ api's ObjectOperation methods aren't implemented in the C api yet. There's no reason not to add them, it's just that no one's gotten to it yet. I can help if you're interested in implementing them, although I'll be away from email next week. Josh ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2012-08-18 2:25 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-08-17 19:36 omap functions in librados.h Wido den Hollander 2012-08-17 19:54 ` Gregory Farnum 2012-08-17 20:09 ` Wido den Hollander 2012-08-17 20:13 ` Gregory Farnum 2012-08-17 20:24 ` Wido den Hollander 2012-08-18 2:25 ` Xiaopong Tran 2012-08-17 20:45 ` Tommi Virtanen 2012-08-17 20:10 ` Josh Durgin
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.