Feature #13382

Updated by Peter Amstutz 3 months ago

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

<pre>
X-Keep-Storage-Classes: foo, bar
</pre>

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:

<pre>
X-Keep-Storage-Classes-Confirmed: foo=1, bar=0 X-Keep-Storage-Class: foo, bar
</pre>

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.

source:services/keepstore/handlers.go#L744

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

Back