<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">data InitTVar a = TVar [TVar a]<div><br></div><div>sorry<br><div></div></div><div><div>Am 04.08.2010 um 10:04 schrieb Frank Kupke:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Thanks. In fact, the server lookup is needed only to make initial contact to another node, or better - as the distributed architecture is transparent to the app programmer - to make initial contact to another TVar. This initial TVar would then be able to distribute more TVars. It could be typed something like:<div><br></div><div>data initTVar a = TVar [TVar a]<br><div><br></div><div>Also, once you have made contact (i.e. lookup from name server) to a TVar, you can access it as if it were locally defined. It does not matter if the name server then fails or not. Obviously, a failed name server would not allow to make new contacts. Then your distributed program would need to create redundant name servers and make sure their IP address stays the same or is known to every node.</div><div><br></div><div>Frank</div><div><br><div><div>Am 03.08.2010 um 21:59 schrieb Alberto G. Corona:</div><br class="Apple-interchange-newline"><blockquote type="cite">That is really nice.<div><br></div><div>The architecture seems to be around a single server that bring lookup services, so there is a single point of failure. &nbsp;I´m thinking on cloud computing. Can be extended to have backup servers somehow ?</div>

<div><br></div><div>Alberto.</div><div><br><div class="gmail_quote">2010/8/3 Christopher Done <span dir="ltr">&lt;<a href="mailto:chrisdone@googlemail.com" target="_blank">chrisdone@googlemail.com</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

This is very cool, thanks for writing it. I will try it when I get home tonight.<br>
<div><div></div><div><br>
On 3 August 2010 10:35, Frank Kupke &lt;<a href="mailto:frk@informatik.uni-kiel.de" target="_blank">frk@informatik.uni-kiel.de</a>&gt; wrote:<br>
&gt; Hi,<br>
&gt;<br>
&gt; DSTM is an implementation of a robust distributed Software Transactional<br>
&gt; Memory (STM) library for Haskell. Many real-life applications are<br>
&gt; distributed by nature. Concurrent applications may profit from robustness<br>
&gt; added by re-implementation as distributed applications. DSTM&nbsp;extends the STM<br>
&gt; abstraction to distributed systems and presents an implementation efficient<br>
&gt; enough to be used in soft real-time applications. Further, the implemented<br>
&gt; library is robust in itself, offering the application developer a high<br>
&gt; abstraction level to realize robustness, hence, significantly simplifying<br>
&gt; this, in general, complex task.<br>
&gt;<br>
&gt; The DSTM package consists of the DSTM library, a name server application,<br>
&gt; and three sample distributed programs using the library. Provided are a<br>
&gt; simple Dining Philosophers, a Chat, and a soft real-time Bomberman game<br>
&gt; application. Distributed communication is transparent to the application<br>
&gt; programmer. The application designer uses a very simple name server<br>
&gt; mechanism to set up the system. The DSTM library includes the management of<br>
&gt; unavailable process nodes and provides the application with abstract error<br>
&gt; information thus facilitating the implementation of robust distributed<br>
&gt; application programs.<br>
&gt;<br>
&gt; For usage please look into the documentation file: DSTMManual.pdf.<br>
&gt;<br>
&gt; The package including the documentation can be found on:<br>
&gt; <a href="http://hackage.haskell.org/package/DSTM-0.1.1" target="_blank">http://hackage.haskell.org/package/DSTM-0.1.1</a><br>
&gt;<br>
&gt; Best regards,<br>
&gt; Frank Kupke<br>
&gt;<br>
</div></div><div><div></div><div>&gt; _______________________________________________<br>
&gt; Haskell-Cafe mailing list<br>
&gt; <a href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a><br>
&gt; <a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
&gt;<br>
&gt;<br>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
</div></div></blockquote></div><br></div>
</blockquote></div><br></div></div></div>_______________________________________________<br>Haskell-Cafe mailing list<br><a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>http://www.haskell.org/mailman/listinfo/haskell-cafe<br></blockquote></div><br></body></html>