<br><br><div class="gmail_quote">On Tue, Nov 1, 2011 at 10:53 AM, Neil Davies <span dir="ltr">&lt;<a href="mailto:semanticphilosopher@gmail.com">semanticphilosopher@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div style="word-wrap:break-word">Word of caution<div><br></div><div>Understand the semantics (and cost profile) of the AWS services first - you can&#39;t just open a HTTP connection and dribble data out over several days and hope for things to work. It is not a system that has that sort of laziness at its heart.</div>
<div><br></div><div>AWS doesn&#39;t supply a traditional remote file store semantics - is queuing, simple database and object store have all been designed for large scale systems being offered as a service to a (potentially hostile) large set of users - you can see that in the way that things are designed. There are all sorts of (sensible from their point of view) performance related limits and retries.</div>
<div><br></div><div>The challenge in designing nice clean layers on top of AWS is how/when to hide the transient/load related failures.</div><div><br></div><font color="#888888"><div><br></div></font></div></blockquote><div>
<br>As a straw-man approach I would go first to NData.Map backed by Data.Map with addition of &quot;flush&quot; function  to write Data.Map to external key-value store / NoSQL DB. <br>Another requirement for NData.Map is concurrent consistency, so different clients could modify its state preserving &quot;happen-before&quot; relationship. For this I would add to NData.Map a &quot;reftresh&quot; function, that updates local copy from  external key-value store.<br>
<br>As for hSimpleDB package, it looks like it doesn&#39;t build on ghc7:<br><a href="http://hackage.haskell.org/package/hSimpleDB">http://hackage.haskell.org/package/hSimpleDB</a><br> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div style="word-wrap: break-word;"><font color="#888888"><div></div></font><h1>The hSimpleDB package</h1><p>Interface to Amazon&#39;s SimpleDB service.
</p><h2>Properties</h2><table><tbody><tr><th align="left" valign="top">Versions</th><td><a href="http://hackage.haskell.org/package/hSimpleDB-0.1">0.1</a>, <a href="http://hackage.haskell.org/package/hSimpleDB-0.2">0.2</a>, <b>0.3</b></td>
</tr><tr><th align="left" valign="top">Dependencies</th><td><a href="http://hackage.haskell.org/package/base-3.0.3.2">base</a> (≥3 &amp; ≤4), <a href="http://hackage.haskell.org/package/bytestring-0.9.2.0">bytestring</a>, <a href="http://hackage.haskell.org/package/Crypto-4.2.4">Crypto</a>, <a href="http://hackage.haskell.org/package/dataenc-0.14.0.2">dataenc</a>, <a href="http://hackage.haskell.org/package/HTTP-4000.1.2">HTTP</a>, <a href="http://hackage.haskell.org/package/hxt-9.1.4">hxt</a>, <a href="http://hackage.haskell.org/package/network-2.3.0.7">network</a>, <a href="http://hackage.haskell.org/package/old-locale-1.0.0.3">old-locale</a>, <a href="http://hackage.haskell.org/package/old-time-1.0.0.7">old-time</a>, <a href="http://hackage.haskell.org/package/utf8-string-0.3.7">utf8-string</a></td>
</tr><tr><th align="left" valign="top">License</th><td>BSD3</td></tr><tr><th align="left" valign="top">Author</th><td>David Himmelstrup 2009, Greg Heartsfield 2007</td></tr><tr><th align="left" valign="top">Maintainer</th>
<td>David Himmelstrup &lt;<a href="mailto:lemmih@gmail.com">lemmih@gmail.com</a>&gt;</td></tr><tr><th align="left" valign="top">Category</th><td><a href="http://hackage.haskell.org/packages/archive/pkg-list.html#cat:database">Database</a>, <a href="http://hackage.haskell.org/packages/archive/pkg-list.html#cat:web">Web</a>, <a href="http://hackage.haskell.org/packages/archive/pkg-list.html#cat:network">Network</a></td>
</tr><tr><th align="left" valign="top">Upload date</th><td>Thu Sep 17 17:09:26 UTC 2009</td></tr><tr><th align="left" valign="top">Uploaded by</th><td>DavidHimmelstrup</td></tr><tr><th align="left" valign="top">Built on</th>
<td>ghc-6.10, ghc-6.12</td></tr><tr><th align="left" valign="top">Build failure</th><td>ghc-7.0 (<a href="http://hackage.haskell.org/packages/archive/hSimpleDB/0.3/logs/failure/ghc-7.0">log</a>)</td></tr></tbody></table></div>
</blockquote><div> </div></div>