Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ChangeVersion and preventing overlapping updates with NamespaceDB #4064

Open
6 tasks
hickeng opened this issue Feb 28, 2017 · 0 comments
Open
6 tasks

ChangeVersion and preventing overlapping updates with NamespaceDB #4064

hickeng opened this issue Feb 28, 2017 · 0 comments
Labels
area/vsphere Intergration and interoperation with vSphere priority/p2

Comments

@hickeng
Copy link
Member

hickeng commented Feb 28, 2017

Story
As a VIC developer I want to be able to rely on the infrastructure/code to enforce consistency between portlayer.Commit operations

Detail
Currently we are using the VM changeVersion to enforce consistency between operations on the same VM. This is accomplished by setting the changeVersion when we first get the handle, meaning that we have a record of the VM and configuration state on which decisions have been based when modifying the handle. If that changeVersion is not current when we come to commit then it's rejected as a concurrent operation. Because guestinfo is modified as part of the VM spec it is guarded by the changeVersion.

We require a similar guarantee when the configuration is stored in NamespaceDB - whether that's provided transparently via namespaceDB implementation, or whether we achieve it via other means.

We need to confirm:

  • Lifecycle of namespaces and keys when VMs are powered on/off (i.e. confirm that we don't have the same issues as with guestinfo)
  • Do namespaceDB updates increment VM changeVersion?

If needed, a design for the portlayer.Commit logic for how we detect and reject a collision.

Acceptance

  • NamespaceDB keys, values and namespaces are persistent irrespective of VM power state during key creation/update
  • Either of:
    • Namespace updates changeVersion
    • Design for preventing update collisions
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/vsphere Intergration and interoperation with vSphere priority/p2
Projects
None yet
Development

No branches or pull requests

1 participant