<div dir="ltr">ETS tables can be seen as global data within the Erlang VM. <div style>If a process makes updates A, B and C, the updates will become visible in that order for other processes.</div><div style>Of course other processes might come in and see the updates in between A, B, C as well.</div>
<div style><br></div><div style>There is no transaction support in ETS where several updates can be done as one atomic operation. To achieve that you need to use Mnesia.</div><div style><br></div><div style>/Kenneth Erlang/OTP Ericsson</div>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Jun 4, 2013 at 3:03 AM, Jonathan Leivent <span dir="ltr"><<a href="mailto:jleivent@comcast.net" target="_blank">jleivent@comcast.net</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">After reading the on-line doc on ets, I'm a bit confused about its guarantees.  I understand that it guarantees atomicity and isolation for operations on a single object.  However, what about a sequence of update operations on different objects performed by the same process?  Are the results of these operations guaranteed to be visible to other processes in only the order in which they occur?  Or, might SMP-style weakly-consistent memory - or even compiler/hardware operation re-ordering - cause the updates to appear in a different order to other processes?<br>

<br>
-- Jonathan<br>
______________________________<u></u>_________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/<u></u>listinfo/erlang-questions</a><br>
</blockquote></div><br></div>