About Magma Concurrency
Last updated at 2:08 am UTC on 13 October 2008
In terms of updating a shared persistent model, an incident of "concurrency" occurs when a session tries to update an old version of an object. Another session changed the object, therefore Magma cannot allow those changes to be overwritten (not to mention the new changes may no longer be necessary). Persistent objects in an image are updated each time your session issues a #begin, #commit or #abort.
Beginning with release 41, transactions may now be as long as desired. In fact, transactions may even span image saves. That is, you may start an image, connect to a Magma repository, begin a transaction, make some changes, save and exit the image (not yet having committed), reboot the image later (objects in the image are brought up to date with changes by other sessions), continue any further changes, and finally commit successfully.