Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>Well, I thought I'd be clever and google several keywords, to find some literature. The first result... was this question.</p> <p>So there isn't too much on this topic! Interesting. Just thought I'd share.</p> <p>Aiden Bell and DFA have both given very thorough answers, so I won't try to top them. :) But I will make one observation, concerning the DAG quality of the graph and concurrent write access. This may have already occurred to you, but hey. :)</p> <p>You can allow concurrent threads without having to worry about one overwriting another's changes by simply assuming that, at all times, the <i>node inhabited by a writing thread, and all of the children of that node, are "locked" by that particular writing thread</i>. I find it easiest to visualize this with a tree (which is a DAG as well, obviously). Any writing thread has basically locked a particular sub-tree, but likewise we can now say that any sibling trees, or any ancestor nodes, are happily writable.</p> <p>A more complex DAG (where a node can have multiple parents, in particular) will have, in effect, a lot of overlapping sub-trees, and so there may not be so much freedom, but the rule still applies: any node that is not inhabited by, or the child of a node inhabited by a write-thread, can be considered write-enabled.</p> <p>Obviously, there could be a lot of factors why the above idea is not helpful, but if multiple write threads often head off in "different" directions, it may ease some of the requirements needed to make it thread-safe.</p> <p>Hope this helps!</p> <p>-Agor</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload