Hello everyone, I watched Rick Reed’s video about scaling Whatsapp Server and about Parallelizing the Mnesia Database he said : “we were doing mostly async_dirty and to give us much consistency as possible since we don’t have transactions running around this staff, we isolate all the record access to a single process on a single node by hashing”,
All that I have understand from that, is that using async_dirty
instead of Transactions will cause a loss of Isolation Property ensured by Transaction, but this “we isolate all the record access to a single process on a single node by hashing” is absolutely not understood for me so please can someone clear things about ?
2 Likes
My interpretation of Rick Reed’s 2014 presentation is that their async_dirty activities (a Mnesia term) are limited to accessing single records. In that case you can hash on the Oid (table + primary key) to select which worker to execute the access, while maintaining consistency.
3 Likes