Feature #13382

Updated by Peter Amstutz almost 2 years ago

A If a PUT request can specify a specifies storage class: 

 X-Keep-Storage-Classes: foo, bar 

 The keepstore should respond with how many replicas it was able classes, write to a volume that offers all specified classes. Otherwise, write for each storage class.   

 Keepstore should go through all volumes it has access to and attempt to record a volume that offers the block once for each storage "default" class.    Once a storage class is satisfied it is removed from the list.    When all storage classes are satisfied or all volumes have been checked, it is success if at least one block was recorded, and failure if not. 

 Proposed format: 

 X-Keep-Storage-Classes-Confirmed: foo=1, bar=0 X-Keep-Storage-Class: foo, bar 

 The client If there is responsible for keeping track no volume that offers all of how many replicas have been written for each storage class.    If one storage class is satisfied but the specified classes, return an error that causes the client not another, to retry the satisfied one can be removed from same request at the X-Keep-Storage-Classes list.    The overall write is a success if same server. 

 When checking whether data already exists, only check volumes that satisfy all storage classes were satisfied, and a failure if any of the desired classes. 


 [[Keep storage classes could not be satisfied. classes]]