Passing on what you know — S3 Edition

From the AWS S3 documentation, about adding randomness to key-names to avoid “hot-partition” / sharding issues.
If you anticipate that your workload will consistently exceed 100 requests per second, you should avoid sequential key names. If you must use sequential numbers or date and time patterns in key names, add a random prefix to the key name. The randomness of the prefix more evenly distributes key names across multiple index partitions.
An oldie but goodie, this one is. I’ve been bit by it, on average, about once a year or so. Shopify got nailed recently too, and a quick Google search reveals that there is a fairly constant stream of people running into this. It’s not just an S3 thing, it’s there in the docs for Google Cloud Storage too…
The issue at hand is, that is the the type of thing that
• you experience rarely, but
• when you do experience it, it hurts, but
• it’s not the kind of thing that you walk around telling everybody about, but
• even if you do, the others don’t quite internalize it till it hurts them, and
• lather, rinse, repeat…
It’s not just this, there is an entire category of such things, an entire universe of knowledge that one gains that it just isn’t feasible to pass on to others because of limited time/space/energy/effort, and has nothing to do with bad intentions.
The good news, I guess, is that the time it takes to figure things out has dramatically decreased — the last time we were hit by the S3 Bucket Challenge, we figured it out, and resolved it in a few hours. As compared to a few days the first time around 😡
I’m not quite sure what the answer to this is though — the sheer amount of stuff that one needs to know is clearly not diminishing. Maybe (casts randomly) #DeepLearning or some such?

Comments

Popular posts from this blog

Erlang, Binaries, and Garbage Collection (Sigh)

Spot The Difference — Deep Learning Edition