Question

Some applications require really fast response, to meet their expectations to users. I am building one such application and i am using mnesia. Now, when we by-pass the mnesia transaction manager , we approach good performance. However, this is the problem:

We need to replicate this database as part of load balancing, after-all, mnesia does the replication for us. We are using ONLY dirty operations in this application. We have a few parts using async_dirty context. I am wondering, would mnesia replication be affected if we are not using the transaction context at this scale ?

Too many frequent dirty operations are occuring on records all the time, so i wonder if a request made on side B replica, would find the changes the have just been made by side A replica via a dirty operation ?

Was it helpful?

Solution

According to Mnesia User's Guide:

  • async_dirty activities "will wait for the operation to be performed on one node but not the others".
  • For sync_dirty activities: "The caller will wait for the updates to be performed on all active replicas".
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top