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 10 years ago
- Description updated (diff)
- Story points set to 1.0
Updated by Brett Smith over 10 years ago
- Target version changed from Arvados Future Sprints to 2015-09-16 sprint
Updated by Brett Smith over 10 years ago
- Target version changed from 2015-09-16 sprint to 2015-09-30 sprint
Updated by Brett Smith over 10 years ago
See #7235 for more thoughts about the timeout issue.
Updated by Brett Smith over 10 years ago
- Target version changed from 2015-09-30 sprint to Arvados Future Sprints
Updated by Radhika Chippada over 10 years ago
- Status changed from New to In Progress
Updated by Radhika Chippada over 10 years ago
- Target version changed from Arvados Future Sprints to 2015-09-30 sprint
Updated by Tom Clegg over 10 years ago
Noneif we should use one thread per copy wanted1if 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 over 10 years ago
Addressed all those comments. Thanks.
Updated by Tom Clegg over 10 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 over 10 years ago
- Status changed from In Progress to Resolved
- % Done changed from 0 to 100
Applied in changeset arvados|commit:b4112f2e4220312c71c5c3d288f888133a5ba41a.