All of lore.kernel.org
 help / color / mirror / Atom feed
* Java binding for RADOS API
@ 2010-11-12 12:37 Takuya ASADA
  2010-11-12 13:35 ` Wido den Hollander
  2010-11-12 18:04 ` Sage Weil
  0 siblings, 2 replies; 11+ messages in thread
From: Takuya ASADA @ 2010-11-12 12:37 UTC (permalink / raw)
  To: ceph-devel

Hi,

I had implemented Java binding for RADOS API to integrate RADOS for
Eucalyptus, the opensource IaaS platform.

The API is based on librados with small changes:
class Rados is container of librados::Rados, it does only create_pool,
list_pools, lookup_pool, open_pool.
To access objects, it uses class Pool, which is container of
librados::pool_t, can received from Rados.openPool().
This has read, write, remove, stat and list_objects_open.

Sample code:
https://github.com/syuu1228/rados4j/blob/master/test/Test.java

Whole code can fetch from:
https://github.com/syuu1228/rados4j

Javadoc is available on following URL(API list only, not documented yet):
http://rados4j.dokukino.com/doc/

Here's build sequence:
$ ant             # this will save librados4j.so and rados4j.jar into target/
$ ant javadoc # if an API document needed

I want to contribute it like phprados.
Comments?

syuu

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Java binding for RADOS API
  2010-11-12 12:37 Java binding for RADOS API Takuya ASADA
@ 2010-11-12 13:35 ` Wido den Hollander
  2010-11-13 15:41   ` Takuya ASADA
  2010-11-12 18:04 ` Sage Weil
  1 sibling, 1 reply; 11+ messages in thread
From: Wido den Hollander @ 2010-11-12 13:35 UTC (permalink / raw)
  To: Takuya ASADA; +Cc: ceph-devel

Hi Takuya,

Great work! I've been following rados4j for a while now (Found you on
Github), like the approach!

Eucalyptus works with Qemu took right, wouldn't Qemu-RBD be a better
solution? Or what are your plans with RADOS for Eucalyptus?

But great work! I think a lot of people don't see the full potential of
RADOS, hope your bindings and phprados will make more people use RADOS.

If you ask Sage, he might want to setup a new GIT repo for you and a
project in the tracker, so we can keep track of bugs and features.

Thanks,

Wido

On Fri, 2010-11-12 at 12:37 +0000, Takuya ASADA wrote:
> Hi,
> 
> I had implemented Java binding for RADOS API to integrate RADOS for
> Eucalyptus, the opensource IaaS platform.
> 
> The API is based on librados with small changes:
> class Rados is container of librados::Rados, it does only create_pool,
> list_pools, lookup_pool, open_pool.
> To access objects, it uses class Pool, which is container of
> librados::pool_t, can received from Rados.openPool().
> This has read, write, remove, stat and list_objects_open.
> 
> Sample code:
> https://github.com/syuu1228/rados4j/blob/master/test/Test.java
> 
> Whole code can fetch from:
> https://github.com/syuu1228/rados4j
> 
> Javadoc is available on following URL(API list only, not documented yet):
> http://rados4j.dokukino.com/doc/
> 
> Here's build sequence:
> $ ant             # this will save librados4j.so and rados4j.jar into target/
> $ ant javadoc # if an API document needed
> 
> I want to contribute it like phprados.
> Comments?
> 
> syuu
> --
> 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] 11+ messages in thread

* Re: Java binding for RADOS API
  2010-11-12 12:37 Java binding for RADOS API Takuya ASADA
  2010-11-12 13:35 ` Wido den Hollander
@ 2010-11-12 18:04 ` Sage Weil
  2010-11-15  7:19   ` Takuya ASADA
  1 sibling, 1 reply; 11+ messages in thread
From: Sage Weil @ 2010-11-12 18:04 UTC (permalink / raw)
  To: Takuya ASADA; +Cc: ceph-devel

Hi Takuya,

This looks great!  (At least to my largely Java-averse eyes :).  I'm happy 
to put a git tree clone up, although I don't have a way to allow outside 
access so any pushes would have to then go through me.  We can also link 
it up in the wiki and elsewhere.

sage


On Fri, 12 Nov 2010, Takuya ASADA wrote:

> Hi,
> 
> I had implemented Java binding for RADOS API to integrate RADOS for
> Eucalyptus, the opensource IaaS platform.
> 
> The API is based on librados with small changes:
> class Rados is container of librados::Rados, it does only create_pool,
> list_pools, lookup_pool, open_pool.
> To access objects, it uses class Pool, which is container of
> librados::pool_t, can received from Rados.openPool().
> This has read, write, remove, stat and list_objects_open.
> 
> Sample code:
> https://github.com/syuu1228/rados4j/blob/master/test/Test.java
> 
> Whole code can fetch from:
> https://github.com/syuu1228/rados4j
> 
> Javadoc is available on following URL(API list only, not documented yet):
> http://rados4j.dokukino.com/doc/
> 
> Here's build sequence:
> $ ant             # this will save librados4j.so and rados4j.jar into target/
> $ ant javadoc # if an API document needed
> 
> I want to contribute it like phprados.
> Comments?
> 
> syuu
> --
> 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] 11+ messages in thread

* Re: Java binding for RADOS API
  2010-11-12 13:35 ` Wido den Hollander
@ 2010-11-13 15:41   ` Takuya ASADA
  2010-11-15  8:02     ` Wido den Hollander
  0 siblings, 1 reply; 11+ messages in thread
From: Takuya ASADA @ 2010-11-13 15:41 UTC (permalink / raw)
  To: Wido den Hollander; +Cc: ceph-devel

Hi,

On Fri, Nov 12, 2010 at 10:35 PM, Wido den Hollander <wido@widodh.nl> wrote:
> Hi Takuya,
>
> Great work! I've been following rados4j for a while now (Found you on
> Github), like the approach!
>
> Eucalyptus works with Qemu took right, wouldn't Qemu-RBD be a better
> solution? Or what are your plans with RADOS for Eucalyptus?

I know about qemu-rbd, that's for block device service similar to Amazon EBS.
I only implemented RADOS backend for "Walrus", that is similar to Amazon S3.
So these are different services, which can work together.
I think if both services could integrated into Eucalyptus(or the
another IaaS platform such as OpenStack) that will be exciting.

Ceph already has radosgw for S3 compatible service anyway, but it
looks much easier to use RADOS API from Walrus, so I implemented that
way.

> But great work! I think a lot of people don't see the full potential of
> RADOS, hope your bindings and phprados will make more people use RADOS.
>
> If you ask Sage, he might want to setup a new GIT repo for you and a
> project in the tracker, so we can keep track of bugs and features.
>
> Thanks,
>
> Wido

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Java binding for RADOS API
  2010-11-12 18:04 ` Sage Weil
@ 2010-11-15  7:19   ` Takuya ASADA
  0 siblings, 0 replies; 11+ messages in thread
From: Takuya ASADA @ 2010-11-15  7:19 UTC (permalink / raw)
  To: Sage Weil; +Cc: ceph-devel

Hi,

On Fri, Nov 12, 2010 at 6:04 PM, Sage Weil <sage@newdream.net> wrote:
> Hi Takuya,
>
> This looks great!  (At least to my largely Java-averse eyes :).  I'm happy
> to put a git tree clone up, although I don't have a way to allow outside
> access so any pushes would have to then go through me.  We can also link
> it up in the wiki and elsewhere.

You mean git://ceph.newdream.net is not allowed to push from external network?
If so I think it better to link github repository from wiki.
Can I create new wiki page for it?
--
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] 11+ messages in thread

* Re: Java binding for RADOS API
  2010-11-13 15:41   ` Takuya ASADA
@ 2010-11-15  8:02     ` Wido den Hollander
  2010-11-15  8:20       ` Takuya ASADA
  0 siblings, 1 reply; 11+ messages in thread
From: Wido den Hollander @ 2010-11-15  8:02 UTC (permalink / raw)
  To: Takuya ASADA; +Cc: ceph-devel

Hi Takuya,

On Sun, 2010-11-14 at 00:41 +0900, Takuya ASADA wrote:
> Hi,
> 
> On Fri, Nov 12, 2010 at 10:35 PM, Wido den Hollander <wido@widodh.nl> wrote:
> > Hi Takuya,
> >
> > Great work! I've been following rados4j for a while now (Found you on
> > Github), like the approach!
> >
> > Eucalyptus works with Qemu took right, wouldn't Qemu-RBD be a better
> > solution? Or what are your plans with RADOS for Eucalyptus?
> 
> I know about qemu-rbd, that's for block device service similar to Amazon EBS.
> I only implemented RADOS backend for "Walrus", that is similar to Amazon S3.

How did you do this? Did you map all Walrus objects 1:1 to RADOS? If so,
that should give you pretty large RADOS objects. That is not a problem,
RADOS can handle that, but performance-wise it isn't the best way to go.

Or does Walrus split it's internal objects into smaller ones?

> So these are different services, which can work together.
> I think if both services could integrated into Eucalyptus(or the
> another IaaS platform such as OpenStack) that will be exciting.
> 
> Ceph already has radosgw for S3 compatible service anyway, but it
> looks much easier to use RADOS API from Walrus, so I implemented that
> way.

Yes, the radosgw from Ceph is proof-of-concept, what RADOS/Ceph is
capable of. Do you have your Walrus integration online somewhere?

> 
> > But great work! I think a lot of people don't see the full potential of
> > RADOS, hope your bindings and phprados will make more people use RADOS.
> >
> > If you ask Sage, he might want to setup a new GIT repo for you and a
> > project in the tracker, so we can keep track of bugs and features.
> >
> > Thanks,
> >
> > Wido

About the Wiki, you are free to create a page :-)

Thanks,

Wido


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Java binding for RADOS API
  2010-11-15  8:02     ` Wido den Hollander
@ 2010-11-15  8:20       ` Takuya ASADA
  2010-11-15 13:21         ` Wido den Hollander
  0 siblings, 1 reply; 11+ messages in thread
From: Takuya ASADA @ 2010-11-15  8:20 UTC (permalink / raw)
  To: Wido den Hollander; +Cc: ceph-devel

Hi,

> How did you do this? Did you map all Walrus objects 1:1 to RADOS? If so,
> that should give you pretty large RADOS objects. That is not a problem,
> RADOS can handle that, but performance-wise it isn't the best way to go.
>
> Or does Walrus split it's internal objects into smaller ones?

I didn't know there's performance penalty, so currently it's just 1:1.
I think eucalyptus administration tool split up a VM image to multiple
objects when store it into Walrus,
but that's only for VM image.
Normal S3 put go directly 1:1.

What is the best size when split it up anyway?
Maybe I should refer rbd code?

>> So these are different services, which can work together.
>> I think if both services could integrated into Eucalyptus(or the
>> another IaaS platform such as OpenStack) that will be exciting.
>>
>> Ceph already has radosgw for S3 compatible service anyway, but it
>> looks much easier to use RADOS API from Walrus, so I implemented that
>> way.
>
> Yes, the radosgw from Ceph is proof-of-concept, what RADOS/Ceph is
> capable of. Do you have your Walrus integration online somewhere?

Well, currently my testing environment is on the internal network.
If you want to test it I can setup.

>>
>> > But great work! I think a lot of people don't see the full potential of
>> > RADOS, hope your bindings and phprados will make more people use RADOS.
>> >
>> > If you ask Sage, he might want to setup a new GIT repo for you and a
>> > project in the tracker, so we can keep track of bugs and features.
>> >
>> > Thanks,
>> >
>> > Wido
>
> About the Wiki, you are free to create a page :-)
Okay, thanks.

syuu

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Java binding for RADOS API
  2010-11-15  8:20       ` Takuya ASADA
@ 2010-11-15 13:21         ` Wido den Hollander
  2010-11-15 19:17           ` Takuya ASADA
  0 siblings, 1 reply; 11+ messages in thread
From: Wido den Hollander @ 2010-11-15 13:21 UTC (permalink / raw)
  To: Takuya ASADA; +Cc: ceph-devel

Hi,


On Mon, 2010-11-15 at 08:20 +0000, Takuya ASADA wrote:
> Hi,
> 
> > How did you do this? Did you map all Walrus objects 1:1 to RADOS? If so,
> > that should give you pretty large RADOS objects. That is not a problem,
> > RADOS can handle that, but performance-wise it isn't the best way to go.
> >
> > Or does Walrus split it's internal objects into smaller ones?
> 
> I didn't know there's performance penalty, so currently it's just 1:1.
> I think eucalyptus administration tool split up a VM image to multiple
> objects when store it into Walrus,
> but that's only for VM image.
> Normal S3 put go directly 1:1.
> 
> What is the best size when split it up anyway?
> Maybe I should refer rbd code?

The general rule is to split objects up into smaller pieces of 4MB,
that's what the filesystem Ceph and RBD do.

You could refer to the RBD code, but i'm not fully into RBD, Yehuda
Sadeh might be able to tell you more.

The problem is, that when you put everything in one RADOS object, it
might fill up a single OSD.

For example, you have ten OSD's, all with a 500GB disk, this would give
you 5TB of storage. But when you create a image of 1TB (which is mapped
into a single RADOS object), this object would grow over 500GB and fill
up that OSD.

When splitting it into smaller object, these can be striped over the
OSD's, giving you more space, but also more performance.

> 
> >> So these are different services, which can work together.
> >> I think if both services could integrated into Eucalyptus(or the
> >> another IaaS platform such as OpenStack) that will be exciting.
> >>
> >> Ceph already has radosgw for S3 compatible service anyway, but it
> >> looks much easier to use RADOS API from Walrus, so I implemented that
> >> way.
> >
> > Yes, the radosgw from Ceph is proof-of-concept, what RADOS/Ceph is
> > capable of. Do you have your Walrus integration online somewhere?
> 
> Well, currently my testing environment is on the internal network.
> If you want to test it I can setup.

Oh no, I meant the code to implement it into Walrus, is that available
somewhere?

> 
> >>
> >> > But great work! I think a lot of people don't see the full potential of
> >> > RADOS, hope your bindings and phprados will make more people use RADOS.
> >> >
> >> > If you ask Sage, he might want to setup a new GIT repo for you and a
> >> > project in the tracker, so we can keep track of bugs and features.
> >> >
> >> > Thanks,
> >> >
> >> > Wido
> >
> > About the Wiki, you are free to create a page :-)
> Okay, thanks.
> 
> syuu

Wido


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Java binding for RADOS API
  2010-11-15 13:21         ` Wido den Hollander
@ 2010-11-15 19:17           ` Takuya ASADA
  2010-11-16 10:00             ` Takuya ASADA
  0 siblings, 1 reply; 11+ messages in thread
From: Takuya ASADA @ 2010-11-15 19:17 UTC (permalink / raw)
  To: Wido den Hollander; +Cc: ceph-devel

Hi,

> The general rule is to split objects up into smaller pieces of 4MB,
> that's what the filesystem Ceph and RBD do.
>
> You could refer to the RBD code, but i'm not fully into RBD, Yehuda
> Sadeh might be able to tell you more.
>
> The problem is, that when you put everything in one RADOS object, it
> might fill up a single OSD.
>
> For example, you have ten OSD's, all with a 500GB disk, this would give
> you 5TB of storage. But when you create a image of 1TB (which is mapped
> into a single RADOS object), this object would grow over 500GB and fill
> up that OSD.
>
> When splitting it into smaller object, these can be striped over the
> OSD's, giving you more space, but also more performance.

Okay, I'll think about it.

>> > Yes, the radosgw from Ceph is proof-of-concept, what RADOS/Ceph is
>> > capable of. Do you have your Walrus integration online somewhere?
>>
>> Well, currently my testing environment is on the internal network.
>> If you want to test it I can setup.
>
> Oh no, I meant the code to implement it into Walrus, is that available
> somewhere?

Oops, sorry I misunderstood.

I implemented it for Eucalyptus-2.0.0, wrote a little install document:
https://code.launchpad.net/~syuu/eucalyptus/rados4eucalyptus-2.0.0
http://r4eucalyptus.wikia.com/wiki/RADOS4Eucalyptus_Wiki

And now I'm trying to merge it to -devel tree of Eucalyptus, just sent
the diff at last Friday.
It's not clear that will be merged or not until I haven't received
reply, unfortunately.

syuu

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Java binding for RADOS API
  2010-11-15 19:17           ` Takuya ASADA
@ 2010-11-16 10:00             ` Takuya ASADA
  2010-11-16 10:57               ` Wido den Hollander
  0 siblings, 1 reply; 11+ messages in thread
From: Takuya ASADA @ 2010-11-16 10:00 UTC (permalink / raw)
  To: Wido den Hollander; +Cc: ceph-devel

Hi,

Can I create a wiki page of rados4eucalyptus too?

On Mon, Nov 15, 2010 at 7:17 PM, Takuya ASADA <syuu@dokukino.com> wrote:
> Hi,
>
>> The general rule is to split objects up into smaller pieces of 4MB,
>> that's what the filesystem Ceph and RBD do.
>>
>> You could refer to the RBD code, but i'm not fully into RBD, Yehuda
>> Sadeh might be able to tell you more.
>>
>> The problem is, that when you put everything in one RADOS object, it
>> might fill up a single OSD.
>>
>> For example, you have ten OSD's, all with a 500GB disk, this would give
>> you 5TB of storage. But when you create a image of 1TB (which is mapped
>> into a single RADOS object), this object would grow over 500GB and fill
>> up that OSD.
>>
>> When splitting it into smaller object, these can be striped over the
>> OSD's, giving you more space, but also more performance.
>
> Okay, I'll think about it.
>
>>> > Yes, the radosgw from Ceph is proof-of-concept, what RADOS/Ceph is
>>> > capable of. Do you have your Walrus integration online somewhere?
>>>
>>> Well, currently my testing environment is on the internal network.
>>> If you want to test it I can setup.
>>
>> Oh no, I meant the code to implement it into Walrus, is that available
>> somewhere?
>
> Oops, sorry I misunderstood.
>
> I implemented it for Eucalyptus-2.0.0, wrote a little install document:
> https://code.launchpad.net/~syuu/eucalyptus/rados4eucalyptus-2.0.0
> http://r4eucalyptus.wikia.com/wiki/RADOS4Eucalyptus_Wiki
>
> And now I'm trying to merge it to -devel tree of Eucalyptus, just sent
> the diff at last Friday.
> It's not clear that will be merged or not until I haven't received
> reply, unfortunately.
>
> syuu
>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Java binding for RADOS API
  2010-11-16 10:00             ` Takuya ASADA
@ 2010-11-16 10:57               ` Wido den Hollander
  0 siblings, 0 replies; 11+ messages in thread
From: Wido den Hollander @ 2010-11-16 10:57 UTC (permalink / raw)
  To: Takuya ASADA; +Cc: ceph-devel

Hi,

On Tue, 2010-11-16 at 10:00 +0000, Takuya ASADA wrote:
> Hi,
> 
> Can I create a wiki page of rados4eucalyptus too?
> 

Yes, sure! It's Ceph related, so why not?

I haven't got the time to test your bindings / implementation yet, but
it's on my TODO.

Wido


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2010-11-16 10:57 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-11-12 12:37 Java binding for RADOS API Takuya ASADA
2010-11-12 13:35 ` Wido den Hollander
2010-11-13 15:41   ` Takuya ASADA
2010-11-15  8:02     ` Wido den Hollander
2010-11-15  8:20       ` Takuya ASADA
2010-11-15 13:21         ` Wido den Hollander
2010-11-15 19:17           ` Takuya ASADA
2010-11-16 10:00             ` Takuya ASADA
2010-11-16 10:57               ` Wido den Hollander
2010-11-12 18:04 ` Sage Weil
2010-11-15  7:19   ` Takuya ASADA

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.