* 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 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
* 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: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 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
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.