Hi, I am evaluating using Tigris as a distributed storage layer for my application. I plan on storing data in multiple regions globally and will be frequently ‘updating’ objects (new put over already existing objects). I have a few questions about the specifics of Tigris’ multi‑region consistency model.
1. What is the atomicity of a put operation to multiple regions? For example, I try to update an object in the
iad
iad
and
fra
fra
regions. For whatever reason, the put to
fra
fra
fails. Could the
iad
iad
put still be executed? Will the put request report a failure? 2. If the
iad
iad
put still goes through, what happens if I then make a get request in the
fra
fra
region with the
x-tigris-cas: true
x-tigris-cas: true
header set? Would the request get routed to the
iad
iad
region with the stored data that’s been more recently updated? Would Tigris eventually update the existing/outdated stored object in the
fra
fra
region? 3. What is the default behavior for a get request with the
x-tigris-cas: true
x-tigris-cas: true
header when there are multiple copies of data stored? Will it get routed to the closest region with the object stored?