Marconi: Scaling Storage

Registered by Allele Dev on 2013-08-01

This blueprint has been superseded. See the newer blueprint "Storage Sharding" for updated plans.

This is essential for scaling and operating a large deployment.

The goals for this blueprint are:

* find an approach that works
* prototype it
* demonstrate it

Some requirements:
- distribute load reasonably well amongst partitions
- handle migrations transparently

Some nice-to-haves:
- statelessness: might require an intelligent client + consistent hashing & rebalance
- simple: change as little as possible, add as little as possible
- easy to deploy
- easy to manage

Under consideration:
- nginx + luajit
- uwsgi fast routing

Disqualified:
- haproxy (no request cloning)
- pyrox (would take a lot of additional impl. to support our needs)

EDIT: previously, haproxy was under consideration. When it was realized that haproxy cannot duplicate requests, it was ruled out of consideration.

Read below for more details and brainstorming.

Blueprint information

Status:
Complete
Approver:
Flavio Percoco
Priority:
Not
Drafter:
Allele Dev
Direction:
Approved
Assignee:
Allele Dev
Definition:
Superseded
Series goal:
Accepted for icehouse
Implementation:
Informational Informational
Milestone target:
milestone icon icehouse-2
Completed by
Allele Dev on 2013-12-09

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:bp/placement-service,n,z

Addressed by: https://review.openstack.org/43909
    feat: marconi proxy (WIP)

Addressed by: https://review.openstack.org/44356
    feat: marconi proxy (v1, health)

Addressed by: https://review.openstack.org/44364
    feat: marconi-proxy forwarding

Gerrit topic: https://review.openstack.org/#q,topic:proxy-test,n,z

Gerrit topic: https://review.openstack.org/#q,topic:mongo_proxy_storage,n,z

Addressed by: https://review.openstack.org/46375
    Add mongo driver for marconi proxy storage

Gerrit topic: https://review.openstack.org/#q,topic:mongo_storage_driver,n,z

Addressed by: https://review.openstack.org/47402
    proxy: mongodb storage driver

Gerrit topic: https://review.openstack.org/#q,topic:memory_storage_driver,n,z

Addressed by: https://review.openstack.org/47399
    proxy: memory storage driver + tests + fixes

Addressed by: https://review.openstack.org/47475
    proxy: adds oslo.cache, config support, & stevedore

Addressed by: https://review.openstack.org/47642
    proxy: mirror structure of marconi queues + bootstrap

Addressed by: https://review.openstack.org/47628
    fix(proxy): forward marconi headers

Addressed by: https://review.openstack.org/47612
    test(proxy): fix proxy-transport tests

Addressed by: https://review.openstack.org/48333
    feat: separate config for queues and proxy

Addressed by: https://review.openstack.org/48495
    feat: split proxy API into admin and public apps

Gerrit topic: https://review.openstack.org/#q,topic:bug/1230841,n,z

Addressed by: https://review.openstack.org/48737
    feat (proxy/admin): allow partition modifications

Addressed by: https://review.openstack.org/49262
    feat (proxy/admin): allow partition modifications

Gerrit topic: https://review.openstack.org/#q,topic:bug/1230388,n,z

Addressed by: https://review.openstack.org/49441
    feat: async forwarding

Gerrit topic: https://review.openstack.org/#q,topic:bug/1230379,n,z

Addressed by: https://review.openstack.org/49585
    feat: add logging to proxy

Gerrit topic: https://review.openstack.org/#q,topic:bug/1234849,n,z

Addressed by: https://review.openstack.org/49599
    fix: do not duplicate queues across partitions

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.