<br><br>On Friday, April 20, 2012, Milan Straka wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Simon,<br>
<br>
> I went to Aleksandar Prokopec's talk about Concurrent Tries at the Scala day earlier this week. I thought it was pretty cool. Here's the paper.<br>
><br>
> <a href="http://infoscience.epfl.ch/record/166908/files/ctries-techreport.pdf" target="_blank">http://infoscience.epfl.ch/record/166908/files/ctries-techreport.pdf</a><br>
><br>
> <a href="http://lampwww.epfl.ch/~prokopec/ctries-snapshot.pdf" target="_blank">http://lampwww.epfl.ch/~prokopec/ctries-snapshot.pdf</a><br>
<br>
Nice :)<br>
<br>
> Maybe we should have a Haskell version? Maybe we already do?<br>
<br>
I think we do not have any nontrivial concurrent structures<br>
(we have MVar and FIFO + Semaphore built on top of it).<br>
<br>
Most of work seem to be done on persistent structures. On that front,<br>
Johan's unordered-containers package implements the hash tries,<br>
which are roughly the described CTries without concurrent updates.</blockquote><div><br></div><div>The data structure described in the paper above is based on the same data structure I use, so it shouldn't be too hard to build a concurrent version.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
I am not sure it would be worth implementing a structure in Haskell<br>
that is inherently concurrent. For me it was always enough to wrap<br>
a persistent structure in an MVar, so updates are performed sequentially<br>
and accesses can be made in parallel.</blockquote><div><br></div><div>I think it is worth implementing. We use the MVar strategy in the IO manager, but it scales poorly.<span></span></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Such a structure would probably have to be strict and in an ST monad,<br>
to get a usable and deterministic behaviour.<br>
<br>
Any thoughts?<br>
<br>
Cheers,<br>
Milan<br>
<br>
_______________________________________________<br>
Libraries mailing list<br>
<a href="javascript:;" onclick="_e(event, 'cvml', 'Libraries@haskell.org')">Libraries@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/libraries" target="_blank">http://www.haskell.org/mailman/listinfo/libraries</a><br>
</blockquote>