[erlang-questions] Mnesia and concurrency

Yariv Sadan <>
Fri Dec 22 19:35:15 CET 2006

How could one implement such a thing in Erlang? Assuming a table is
owned by a single process, and that process can only accept one
message at a time, how can multiple processes perform simultaneous
reads on the table?


> No, the same goes for Erlang and Mnesia. The difference
> against other systems is that in Erlang we do not need
> separate OS threads to achieve this. It suffices to use
> separate Erlang processes (which may be hosted by any
> connected Erlang node). Any number of Erlang processes
> may read the same record without causing a locking
> conflict. But if one Erlang process is grabbing a write
> lock, it will get an exlusive lock for that record. The
> same principle is also valid for table locks.
> /Håkan

More information about the erlang-questions mailing list