Bug #7161
closed[SDKs] PySDK supports any Keep service type, using proxy replication logic for non-disk types
Description
Functional requirements:
- The Python SDK Keep client will talk to all accessible Keep services, regardless of service type.
- The client will send the X-Keep-Desired-Replication header in all PUT requests, and respect the X-Keep-Replicas-Stored header in the response, regardless of service type (currently sends the request header only to proxies).
- The client only has one thread at a time writing to non-disk services: If there are any non-"disk" services in the "accessible" list, use ThreadLimiter(1).
Future work: Anticipate API server telling us max replication for each service, meanwhile say 1 for disks and 3 for others. Let a thread start writing only when sum(max replication) < copies_todo
, i.e., we will need to write more copies even if all currently writing threads succeed with max replication.
TBD: How should KeepClient choose a timeout for non-disk, non-proxy services?
Updated by Tom Clegg over 9 years ago
- Description updated (diff)
- Story points set to 1.0
Updated by Brett Smith over 9 years ago
- Target version changed from Arvados Future Sprints to 2015-09-16 sprint
Updated by Brett Smith over 9 years ago
- Target version changed from 2015-09-16 sprint to 2015-09-30 sprint
Updated by Brett Smith over 9 years ago
See #7235 for more thoughts about the timeout issue.
Updated by Brett Smith over 9 years ago
- Target version changed from 2015-09-30 sprint to Arvados Future Sprints
Updated by Radhika Chippada about 9 years ago
- Status changed from New to In Progress
Updated by Radhika Chippada about 9 years ago
- Target version changed from Arvados Future Sprints to 2015-09-30 sprint
Updated by Tom Clegg about 9 years ago
None
if we should use one thread per copy wanted1
if we should use 1 thread
Perhaps it would be easier to follow if we called it "maxReplicasPerService" and set it to 1 or None (None signifying "unknown")?
How about
-(True != ks.get('read_only'))
+not ks.get('read_only')
Updated by Radhika Chippada about 9 years ago
Addressed all those comments. Thanks.
Updated by Tom Clegg about 9 years ago
ee9c164 LGTM
(Except the commit message "working" isn't very helpful. Maybe this branch should rebase & squash into one commit?)
Updated by Radhika Chippada about 9 years ago
- Status changed from In Progress to Resolved
- % Done changed from 0 to 100
Applied in changeset arvados|commit:b4112f2e4220312c71c5c3d288f888133a5ba41a.