It is currently possible to run multiple instances of a storage-node in ready-only mode (Only makes sense when all instances have access to the shared storage). This supports horizontal scaling and improves availability, however the operator currently only publishes a single endpoint for their node+bucket., This implies the operator must
run the nodes needs to on same host, or
run the nodes behind a reverse proxy (still single point of failure)
use DNS round robin to distribute traffic (not very flexible).
An additional approach would be to allow multiple endpoint to be specified in the protobuf message used to update the opreator metadata. The operator may also want to provide separate endpoint for POST request to upload objects (ie. writing into the storage) from the endpoint used to serve content (ie. reading from storage).
This change would impact the proto message, storage node operator command, query-node schema and mappings.
We would have to update distributor node to be aware of multiple endpoint for a storage node in new schema.
We would have to update atlas/ypp as well to recognize multiple endpoints.
It is currently possible to run multiple instances of a storage-node in ready-only mode (Only makes sense when all instances have access to the shared storage). This supports horizontal scaling and improves availability, however the operator currently only publishes a single endpoint for their node+bucket., This implies the operator must
An additional approach would be to allow multiple endpoint to be specified in the protobuf message used to update the opreator metadata. The operator may also want to provide separate endpoint for POST request to upload objects (ie. writing into the storage) from the endpoint used to serve content (ie. reading from storage).
This change would impact the proto message, storage node operator command, query-node schema and mappings. We would have to update distributor node to be aware of multiple endpoint for a storage node in new schema. We would have to update atlas/ypp as well to recognize multiple endpoints.