Hacker News Clone new | comments | show | ask | jobs | submit | github repologin
Amazon S3 Adds Put-If-Match (Compare-and-Swap) (aws.amazon.com)
102 points by Sirupsen 2 hours ago | hide | past | web | 17 comments | favorite





Be still my beating heart. I have lived to see this day.

Genuinely, we've wanted this for ages and we got half way there with strong consistency.


Might finally be possible to do this on S3: https://pkg.go.dev/github.com/ncruces/go-gcp/gmutex

So....given CAP, which one did they give up

I’d wager that the algorithm is slightly eager to throw a consistency error if it’s unable to verify across partitions. Since the caller is naturally ready for this error, it’s likely not a problem. So in short it’s the P :)

Shouldn't that be the A then? Since the network partition is still there but availability is non-guaranteed.

Yes, definitely. Good point (I was knee jerk assuming the A is always chosen and the real “choice” is between C and P).

A tiny bit of availability, unnoticeable at web scale.

If the default ETag algorithm for non-encrypted, non-multipart uploads in AWS is a plain MD5 hash, is this subject to failure for object data with MD5 collisions?

I'm thinking of a situation in which an application assumes that different (possibly adversarial) user-provided data will always generate a different ETag.


MD5 hash collisions are unlikely to happen at random. The defect was that you can make it happen purposefully, making it useless for security.

This combined with the read-after-write consistency guarantee is a perfect building block (pun intended) for incremental append only storage atop an object store. It solves the biggest problem with coordinating multiple writers to a WAL.

Rename for objects and “directories” also. Atomic.

Finally. GCP has had this for a long time. Years ago I was surprised S3 didn’t.

GCS is just missing x-amz-copy-source-range in my book.

Can we have this Google?

Please?


First thing I thought when I saw the headline was "oh! I should tell Sirupsen"

good example of how a simple feature on the surface (a header comparison) requires tremendous complexity and capacity on the backend.

S3 is rated as "durable" as opposed to "best effort." It has lots of interesting guarantees as a result.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: