Feature #5391

[SDK] Go KeepClient offers a "read block" API that recovers from transmission errors by attempting alternate servers.

Added by Peter Amstutz almost 4 years ago. Updated almost 4 years ago.

Status:
New
Priority:
Normal
Assigned To:
-
Category:
SDKs
Target version:
Start date:
Due date:
% Done:

0%

Estimated time:
Story points:
-

Description

As an optimization, the Go keep client uses HashCheckingReader which computes the hash incrementally and only reports an error when the entire reader has been consumed. If the 1st server has a corrupt block, but a 2nd server has a valid block (or something else goes wrong while reading from the 1st server), it will fail to find the valid block on the second server, because the block reader has already been returned to the caller.

The API should be adjusted to provide a safer default behavior as well the existing streaming mode.

History

#1 Updated by Peter Amstutz almost 4 years ago

  • Description updated (diff)
  • Category set to SDKs

#2 Updated by Tom Clegg almost 4 years ago

  • Tracker changed from Bug to Feature
  • Subject changed from [SDK] Go KeepClient will not try a different keep server on block hash mismatch to [SDK] Go KeepClient offers a "read block" API that recovers from transmission errors by attempting alternate servers.
  • Description updated (diff)

#3 Updated by Tom Clegg almost 4 years ago

  • Target version changed from Bug Triage to Arvados Future Sprints

Also available in: Atom PDF