Project

General

Profile

Librgw

Summary

This has been discussed for Dumpling, but we want to look at it again.
RADOS Gateway refactor into library, internal APIs

Owners

  • Name (Affiliation)
  • Name (Affiliation)
  • Name

Interested Parties

Current Status

Not much has been done in this area since the Dumpling discussion. We want to take a look at it again, especially in light of the external Swift api discussion, Swift lfs, and how it affects RGW.

Detailed Description

There are a few different steps that can be taken. Currently the gateway is a monolithic fastcgi server. We want to be able to provide hooks into different web servers (or other services), and this can be achieved by abstracting different layers.
Top level library:
The gateway itself limits the actual fastcgi specific calls (mainly to rgw_main.cc, rgw_fcgi.{h,cc} -- the rest is all abstracted), so that with little work we can create a library abstraction that encapsulates request and data path handling. New hooks will be required to abstract current header response mechanism. The new library will allow integrating the gateway with other web server frameworks.

Object store library:
A boto-like library api for rgw. At first go it will only include data level api (objects, buckets). Further down the line it will include extra capabilities, such as user management, usage logging, etc.

Work items

Coding tasks

  1. Task 1
  2. Task 2
  3. Task 3

Build / release tasks

  1. Task 1
  2. Task 2
  3. Task 3

Documentation tasks

  1. Task 1
  2. Task 2
  3. Task 3

Deprecation tasks

  1. Task 1
  2. Task 2
  3. Task 3