ceph / go-ceph

Go bindings for Ceph :octopus: :octopus: :octopus:
MIT License
610 stars 251 forks source link

Rados Striping API Support #1011

Closed hd916162 closed 4 weeks ago

hd916162 commented 1 month ago

Will there be a support for radosstriping ?

### Tasks
anoopcs9 commented 1 month ago

Will there be a support for radosstriping ?

Can you specify the corresponding API from ceph?

hd916162 commented 1 month ago

API described here. src/include/radosstriper/libradosstriper.hpp These API are also avaiable in rados cli by specify flag --striper image

phlogistonjohn commented 1 month ago

Thanks for the hint. I don't think the .hpp file would work for us as that is C++. But there's a src/include/radosstriper/libradosstriper.h that could possibly work. Please note that adding a whole new library of ceph bindings to go-ceph would be a lot of work and may not proceed quickly. Contributions and/or design discussion could speed up the process.

phlogistonjohn commented 1 month ago

I could see adding a new package like "rados/striper" and within it a wrapper type Striper that encapsulates rados_striper_t. Then for example we could have methods on Striper for the rados_striper_set_object_layout* functions. And then methods like Read, Write, WriteFull, etc. that are similar to what we have in rados for an IOContext but for Striper instead.

How does that sound?

phlogistonjohn commented 1 month ago

I think we would skip implementing anything using rados_striper_multi_completion_t initially. That could be a separate future feature request once someone knows that it's really needed.

phlogistonjohn commented 1 month ago

The functions named in that screenshot for --striper option match exactly the functions that take a rados_striper_t in the libradosstriper.h header, FWIW.