#1869 closed defect

pluggable backends: serialize backend operations on a shareset — at Version 1

Reported by: davidsarah Owned by: davidsarah
Priority: normal Milestone: 1.10.1
Component: code-storage Version: cloud-branch
Keywords: cloud-backend storage shareset cache test-needed Cc:
Launchpad Bug:

Description (last modified by davidsarah)

The following issue needs to be fixed before the pluggable backends code is merged to trunk (#1819). Before pluggable backends, operations that access share storage were synchronous, and so two or more such operations could not run concurrently. This is important because clients make the assumption of serializability for accesses to a mutable share on a given server (if they are the only such client, which is implied by the Prime Coordination Directive).

Now that backend operations are asynchronous, they can run concurrently. That needs to be fixed. Note that operations on different sharesets do not need to be serializable with respect to each other. (That would impose unnecessary delays.)

The simplest way to implement this is probably to have a weak cache mapping storage indices to ShareSet objects, so that there can only be one ShareSet object per actual shareset, and then use a deferred queue in the ShareSet object to serialize operations. I'm not sure exactly where the cache should go yet.

Change History (1)

comment:1 Changed at 2012-11-20T01:12:36Z by davidsarah

  • Description modified (diff)
  • Status changed from new to assigned
Note: See TracTickets for help on using tickets.