RPC and VersionedObject Compatibility

Registered by Thang Pham on 2015-06-15

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 on 2015-08-19
Completed by
Sean McGinnis on 2016-02-29

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.