Feature #14199
Updated by Peter Amstutz over 6 years ago
API Enable clients to reference blocks from remote clusters, and have those blocks automatically copied to the local cluster. Design sketch: * Feature to instruct keepstore to fetch pull a remote block, save it, and return signed locator (variation on "proxy a block read request" request") * Controller instructs keepstore to pull each block with +R signature and rewrites the added feature of saving the block). (Is manifest with local signatures * Because this triggered by could take a while, controller should return "202 Accepted" so the query flag? doesn't time out * Client needs be indicate it understands "202 Accepted" (probably a query parameter) * If it is a POST request, how does the client know when the collection is ready? Basically an explicit "cache block" operation) Proposed API: Do we create a HEAD request (equivalent to new empty collection with a note "being populated", return the GET request) on remote signed locator uuid, and look for a response header then update it when the complete manifest is ready? ** If not, then it needs to return some other token that has a new locator with local block signature. This header should can be called "X-Keep-Locator" (?). All keepstore GET and HEAD responses for block requests should include this new header. used to resolve the collection being downloaded by controller into the real collection when ready ** What happens if controller falls over while it is processing the collection?