projects
/
arvados.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
closes #7179
[arvados.git]
/
services
/
keepstore
/
volume.go
diff --git
a/services/keepstore/volume.go
b/services/keepstore/volume.go
index daf003e1956a6dd1d951a8b17394ae7ec792ee71..e6a0f27f52df895d4b38a7f29ebd68ad97cbafdb 100644
(file)
--- a/
services/keepstore/volume.go
+++ b/
services/keepstore/volume.go
@@
-1,7
+1,3
@@
-// A Volume is an interface representing a Keep back-end storage unit:
-// for example, a single mounted disk, a RAID array, an Amazon S3 volume,
-// etc.
-
package main
import (
package main
import (
@@
-10,6
+6,9
@@
import (
"time"
)
"time"
)
+// A Volume is an interface representing a Keep back-end storage unit:
+// for example, a single mounted disk, a RAID array, an Amazon S3 volume,
+// etc.
type Volume interface {
// Get a block. IFF the returned error is nil, the caller must
// put the returned slice back into the buffer pool when it's
type Volume interface {
// Get a block. IFF the returned error is nil, the caller must
// put the returned slice back into the buffer pool when it's
@@
-37,7
+36,7
@@
type Volume interface {
// access log if the block is not found on any other volumes
// either).
//
// access log if the block is not found on any other volumes
// either).
//
- // If the data in the backing store is bigger than B
LOCKSIZE
,
+ // If the data in the backing store is bigger than B
lockSize
,
// Get is permitted to return an error without reading any of
// the data.
Get(loc string) ([]byte, error)
// Get is permitted to return an error without reading any of
// the data.
Get(loc string) ([]byte, error)
@@
-53,7
+52,7
@@
type Volume interface {
//
// loc is as described in Get.
//
//
// loc is as described in Get.
//
- // len(block) is guaranteed to be between 0 and B
LOCKSIZE
.
+ // len(block) is guaranteed to be between 0 and B
lockSize
.
//
// If a block is already stored under the same name (loc) with
// different content, Put must either overwrite the existing
//
// If a block is already stored under the same name (loc) with
// different content, Put must either overwrite the existing
@@
-228,6
+227,7
@@
type RRVolumeManager struct {
counter uint32
}
counter uint32
}
+// MakeRRVolumeManager initializes RRVolumeManager
func MakeRRVolumeManager(volumes []Volume) *RRVolumeManager {
vm := &RRVolumeManager{}
for _, v := range volumes {
func MakeRRVolumeManager(volumes []Volume) *RRVolumeManager {
vm := &RRVolumeManager{}
for _, v := range volumes {
@@
-239,14
+239,17
@@
func MakeRRVolumeManager(volumes []Volume) *RRVolumeManager {
return vm
}
return vm
}
+// AllReadable returns an array of all readable volumes
func (vm *RRVolumeManager) AllReadable() []Volume {
return vm.readables
}
func (vm *RRVolumeManager) AllReadable() []Volume {
return vm.readables
}
+// AllWritable returns an array of all writable volumes
func (vm *RRVolumeManager) AllWritable() []Volume {
return vm.writables
}
func (vm *RRVolumeManager) AllWritable() []Volume {
return vm.writables
}
+// NextWritable returns the next writable
func (vm *RRVolumeManager) NextWritable() Volume {
if len(vm.writables) == 0 {
return nil
func (vm *RRVolumeManager) NextWritable() Volume {
if len(vm.writables) == 0 {
return nil
@@
-255,10
+258,11
@@
func (vm *RRVolumeManager) NextWritable() Volume {
return vm.writables[i%uint32(len(vm.writables))]
}
return vm.writables[i%uint32(len(vm.writables))]
}
+// Close the RRVolumeManager
func (vm *RRVolumeManager) Close() {
}
func (vm *RRVolumeManager) Close() {
}
-// VolumeStatus
+// VolumeStatus
provides status information of the volume consisting of:
// * mount_point
// * device_num (an integer identifying the underlying storage system)
// * bytes_free
// * mount_point
// * device_num (an integer identifying the underlying storage system)
// * bytes_free