RPC and VersionedObject Compatibility

Registered by Thang Pham

The following blueprint enables rolling upgrades in cinder, through backwards compatible RPC and versionedobject pinning. The basic idea is to allow services to register their RPC and versionedobject versions (current/pin and available/max) in the cinder database. There will be logic added into the rpcapi layer that will massage the content/object and RPC API to be backwards compatible. Once all services are upgraded, a "cinder-manage version upgrade" command can be used to switch over the object and RPC versions to the latest available.

Blueprint information

Status:
Complete
Approver:
Sean McGinnis
Priority:
High
Drafter:
Thang Pham
Direction:
Approved
Assignee:
Thang Pham
Definition:
Approved
Series goal:
Accepted for mitaka
Implementation:
Implemented
Milestone target:
milestone icon mitaka-3
Started by
Mike Perez
Completed by
Sean McGinnis

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:bp/rpc-object-compatibility,n,z

Addressed by: https://review.openstack.org/192037
    RPC and versionobject compatibility

Addressed by: https://review.openstack.org/177054
    Conversion to volume object

Addressed by: https://review.openstack.org/205622
    Create service_versions table

Addressed by: https://review.openstack.org/209701
    Register RPC and object versions

Addressed by: https://review.openstack.org/214943
    WIP: Make RPC and objects backwards compatible

<jdg> Based on the number of WIP items in the topic and the items in need of work still, it appears this is going to push out to M

Addressed by: https://review.openstack.org/268024
    Add missing RPC calls version to rpcapi's

Addressed by: https://review.openstack.org/268025
    WIP: Report RPC and objects versions

Addressed by: https://review.openstack.org/268026
    WIP: Pin RPC and object version to lowest running

Addressed by: https://review.openstack.org/279039
    Add SIGHUP handlers to reset RPC version pins

Addressed by: https://review.openstack.org/280739
    Remove unused columns from Service ORM model

Addressed by: https://review.openstack.org/281307
    WIP: Add scheduler RPC API v2.0

Addressed by: https://review.openstack.org/281317
    WIP: Add volume RPC API v2.0

Addressed by: https://review.openstack.org/279186
    Add devref on rolling upgrades

Addressed by: https://review.openstack.org/283072
    Add backup RPC API v2.0

Addressed by: https://review.openstack.org/285190
    Adding general notes about rolling upgrades

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.