boydc2014 / rados.go

Go bindings for the CEPH RADOS client library.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

RADOS.go

RADOS.go provides Go bindings for the CEPH RADOS client library (librados).

We attempt to adhere to the style of the Go OS package as much as possible (for example, our Object type implements the FileStat and ReaderAt/WriterAt interfaces).

More information on CEPH and RADOS can be found here: http://ceph.com

License

RADOS.go is released under the simplified (2-clause) BSD license. See the LICENSE file.

TODO

  • More generic Reader/Writer implemenation. Track file position and provide Seek()
  • Close()?
  • Extended attributes
  • TMAP -- what should this API look like?
  • Object locality controls: rados_ioctx_locator_set_key, rados_clone_range
  • Pool-managed snapshot
  • Client-managed snapshot -- what should this API look like?
  • Object list iterator
  • Real tests for cluster/pool stats.
  • Change naming of cluster stat fields to match pool stats?
  • Provide additional bytes used/avail in cluster stats to match pool stats?

Maybe:

  • Is any RADOS test-and-set functionality exposed through librados?
  • Any use for AIO or more advanced IO scheduling?

Contributors

Credits

This project sponsored by Spectra Logic, Inc..

Thanks to @vuleetu for initial inspiration.

About

Go bindings for the CEPH RADOS client library.

License:BSD 2-Clause "Simplified" License