Jump to: navigation, search

GSoC2014/Queues/Storage

< GSoC2014
Revision as of 17:17, 12 February 2014 by Alejandro Cabrera (talk | contribs) (Created storage backend project page)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Add a New Storage Backend

Difficulty Medium
Topics storage, python, marconi
Mentor Alejandro Cabrera

The Queues project is architected in such a way that adding a new storage driver isn't a difficult endeavor. It involves:

  1. Creating a new github project
  2. Listing marconi as a dependency
  3. Stubbing out the driver implementation
  4. Running the unit tests with tox and watching them fail
  5. Iteratively filling in the various controllers

Controller Summary

Name Type Description
QueueController Data Handles queue CRUD operations
MessageController Data Handles message CRUD operations
ClaimsController Data Handles claiming of messages
ShardsController Control Handles registration of shards
CatalogueController Control Lists association of queues to shards

Project Goals

  • Identify the storage backend to be supported
  • Provide an implementation that passes all core tests
  • Provide additional tests that test the nuances of that backend
    • The core suite is fairly thorough - few additional tests, if any, should be needed

Project Nice-to-Haves

  • Provide setup documentation (at least a README)
  • a package available on PyPI (marconi-redis, for example)
  • Benchmarks comparing their backend to existing backends
    • v. mongodb, for example
  • Indicate where their particular backend would be more effective than existing backends
Suggestions

The following are interesting storage engines to consider.