From b8f6c929b202ec691b52189acc4f79ff3db9fa50 Mon Sep 17 00:00:00 2001 From: Tom Clegg Date: Mon, 23 Aug 2021 10:01:32 -0400 Subject: [PATCH] 17698: Update PutBlock comment. Arvados-DCO-1.1-Signed-off-by: Tom Clegg --- services/keepstore/handlers.go | 42 +++++++++++++++------------------- 1 file changed, 19 insertions(+), 23 deletions(-) diff --git a/services/keepstore/handlers.go b/services/keepstore/handlers.go index 4459adfa1c..4698d1fafa 100644 --- a/services/keepstore/handlers.go +++ b/services/keepstore/handlers.go @@ -853,33 +853,29 @@ func newPutProgress(classes []string) putProgress { return pr } -// PutBlock Stores the BLOCK (identified by the content id HASH) in Keep. +// PutBlock stores the given block on one or more volumes. // -// PutBlock(ctx, block, hash) -// Stores the BLOCK (identified by the content id HASH) in Keep. +// The MD5 checksum of the block must match the given hash. // -// The MD5 checksum of the block must be identical to the content id HASH. -// If not, an error is returned. +// The block is written to each writable volume (ordered by priority +// and then UUID, see volume.go) until at least one replica has been +// stored in each of the requested storage classes. // -// PutBlock stores the BLOCK on the first Keep volume with free space. -// A failure code is returned to the user only if all volumes fail. -// -// On success, PutBlock returns nil. -// On failure, it returns a KeepError with one of the following codes: -// -// 500 Collision -// A different block with the same hash already exists on this -// Keep server. -// 422 MD5Fail -// The MD5 hash of the BLOCK does not match the argument HASH. -// 503 Full -// There was not enough space left in any Keep volume to store -// the object. -// 500 Fail -// The object could not be stored for some other reason (e.g. -// all writes failed). The text of the error message should -// provide as much detail as possible. +// The returned error, if any, is a KeepError with one of the +// following codes: // +// 500 Collision +// A different block with the same hash already exists on this +// Keep server. +// 422 MD5Fail +// The MD5 hash of the BLOCK does not match the argument HASH. +// 503 Full +// There was not enough space left in any Keep volume to store +// the object. +// 500 Fail +// The object could not be stored for some other reason (e.g. +// all writes failed). The text of the error message should +// provide as much detail as possible. func PutBlock(ctx context.Context, volmgr *RRVolumeManager, block []byte, hash string, wantStorageClasses []string) (putProgress, error) { log := ctxlog.FromContext(ctx) -- 2.39.5