[tahoe-lafs-trac-stream] [tahoe-lafs] #1869: pluggable backends: serialize backend operations on a shareset
tahoe-lafs
trac at tahoe-lafs.org
Tue Nov 20 01:11:27 UTC 2012
#1869: pluggable backends: serialize backend operations on a shareset
-------------------------------------------------+-------------------------
Reporter: davidsarah | Owner:
Type: defect | davidsarah
Priority: normal | Status: new
Component: code-storage | Milestone: 1.11.0
Keywords: cloud-backend storage shareset | Version: cloud-
cache | branch
| Launchpad Bug:
-------------------------------------------------+-------------------------
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.
--
Ticket URL: <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1869>
tahoe-lafs <https://tahoe-lafs.org>
secure decentralized storage
More information about the tahoe-lafs-trac-stream
mailing list