Jump to content

Dragonfly visits your base in Summer.


Recommended Posts

4 hours ago, nome said:

Why, I'm glad you asked! These days I'm splitting myself between fighting with various columnar datastores (redshift and bigquery to be precise) for analytics purposes and writing multi-stage-commit rules for dynamodb to give us transactionality when the database itself only provides full ACID semantics on a per-row basis. To give an example that doesn't reveal upcoming things, with the trade-inn as it stands today we have to modify 10 different rows in an effectively atomic fashion or we would wind up with nasty race conditions that could either steal people's items or give them too many (which believe you me we see naughty people trying to trigger all day long in our logs!) but since dynamodb provides no native transaction support and the generic transaction library amazon wrote imposes unacceptable levels of overhead and is written in the wrong language for us, we do it ourselves with multi-stage commits. First we create your new trade-inn item in an "embryonic" state where it can't actually be used, and reference within it which other items are to be ground for its creation. Now here's where it gets interesting - should that first step fail we've effectively done nothing, so no need to recover from that condition, but assuming that this first step succeeds we now begin a two stage idempotent process. First we go through all nine source items and... hey, why is everyone asleep?

It's even harder to understand than some complicated physics stuff... So, all of this means that you're working on some improtant things, am I right? :D

Archived

This topic is now archived and is closed to further replies.

Please be aware that the content of this thread may be outdated and no longer applicable.

×
  • Create New...