Project

General

Profile

Feature #13994

Updated by Peter Amstutz over 6 years ago

Implement the ability to proxy requests for blocks from remote clusters in keepstore. 

 h3. Fetching block, no caching 

 # client wishes to read a file 
 # client has provides block locator with "remote" signature (see #13993) 
 # client sends request to keepstore server in regular rendezvous hashing order 
 # keepstore notice it is a remote signature, and converts it to a "regular" signature 
 # keepstore contacts keepproxy on remote cluster and requests block 
 # keepproxy on remote cluster returns block content to keepstore 
 # keepstore returns block content to client 

 h3. Fetching block, with caching: 

 # client wishes to read a file 
 # client has provides block locator with "remote" signature (see #13993) 
 # client sends request to keepstore server in regular rendezvous hashing order 
 # keepstore service looks up (cluster, block) in table mapping (cluster, block, signature) 
 ## if found, check if the remote signature is cached 
 ## if remote signature isn't cached, send HEAD request to ccccc to validate signature 
 ## if the signature is valid, try to fetch the block from local volume 
 ## if the signature is not valid, fail (because HEAD request must have failed) 
 # block is not found, keepstore contacts keepproxy on remote cluster and requests block 
 # block is spooled into local volume storage and mapping is added for (cluster, block, signature) 
 # keepproxy on remote cluster returns block content to keepstore 
 # keepstore returns block content to client, also return valid local signature in header 

Back