alan
alan copied to clipboard
Datastore atomic mutations
While adding something like CRDTs for simultaneously-mutable shared-mutable state is definitely on the table for the future, being able to atomically update any ol' data type is perhaps more useful if not quite as efficient. Distributed locks, though, are very easy to get wrong, and have a much heavier perf impact than in-process locks in a multithreaded application. So we're going to implement an explicit STM that will re-execute a block of code until it can successfully mutate all of the relevant datastore properties.