7719: permit never-delte to be set to false; add warning that datamanager is not...
[arvados.git] / services / keepstore / volume.go
index cdaec9232685dffe50b485bdcbdac22ce0486c74..7966c41b92bd89958308ec77765f0b7a5a1f0fd9 100644 (file)
@@ -36,7 +36,7 @@ type Volume interface {
        // access log if the block is not found on any other volumes
        // either).
        //
-       // If the data in the backing store is bigger than BLOCKSIZE,
+       // If the data in the backing store is bigger than BlockSize,
        // Get is permitted to return an error without reading any of
        // the data.
        Get(loc string) ([]byte, error)
@@ -52,7 +52,7 @@ type Volume interface {
        //
        // loc is as described in Get.
        //
-       // len(block) is guaranteed to be between 0 and BLOCKSIZE.
+       // len(block) is guaranteed to be between 0 and BlockSize.
        //
        // If a block is already stored under the same name (loc) with
        // different content, Put must either overwrite the existing
@@ -150,7 +150,7 @@ type Volume interface {
        // loc is as described in Get.
        //
        // If the timestamp for the given locator is newer than
-       // blob_signature_ttl, Delete must not delete the data.
+       // blobSignatureTTL, Delete must not delete the data.
        //
        // If a Delete operation overlaps with any Touch or Put
        // operations on the same locator, the implementation must
@@ -171,7 +171,7 @@ type Volume interface {
        // reliably or fail outright.
        //
        // Corollary: A successful Touch or Put guarantees a block
-       // will not be deleted for at least blob_signature_ttl
+       // will not be deleted for at least blobSignatureTTL
        // seconds.
        Delete(loc string) error
 
@@ -195,6 +195,11 @@ type Volume interface {
        // will fail because it is full, but Mtime or Delete can
        // succeed -- then Writable should return false.
        Writable() bool
+
+       // Replication returns the storage redundancy of the
+       // underlying device. It will be passed on to clients in
+       // responses to PUT requests.
+       Replication() int
 }
 
 // A VolumeManager tells callers which volumes can read, which volumes