[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [tlaplus] Re: Any examples of a specification of an S3-like object store API?





On 26 July 2016 at 23:54, Andrew Wilcox <andrew...@xxxxxxxxx> wrote:
I really want set a wall time when objects are created.

In your original post you said you wanted to be able to model that for example ~GET(path), PUT(path), GET(path) wasn't guaranteed to get what you put.  What else do you need to model, that you'd need a wall time for?

I'm trying to set a created date on files. That's all. I suppose I could have a specific construct where the current time is passed in to the object store as another argument, so the state of the inner system isn't running on a clock, just there is something, somewhere, that has a notion of time.

regarding that sequence of ~GET(path), PUT(path), GET(path), that's apparently some caching of negative lookups which AWS S3 does, as part of a DDoS defence: both positive and negative results are cached.

It's interesting as it complicates testing; you can't execute that exact sequence to demonstrate that the store appears to have create consistency, or if you do, you'd better have some idea of what a good delay between the negative GET and the PUT should be. And it'd have to be a coded in delay, as the usual probe+sleep strategy doesn't work, as it just refreshes the entry in the cache.

Beyond the scope of this first exercise anyway; here I want to declare that after a PUT, a HEAD or a GET returns the length of the data submitted, the time it was submitted; the GET also returns the exact data supplied.