Re: [ANN] Avout: Distributed State in Clojure

2011-12-01 Thread David Edgar Liebke
init-stm (and reset-stm) are only used for creating an STM that will be used by every client. You only want to call it once, not every time a client connects. I could be more clever about calling it when it's clear that it hasn't been called before though. I'll dedicate that patch to you :) > I

Re: [ANN] Avout: Distributed State in Clojure

2011-12-01 Thread Sam Aaron
Out of interest, why is #'init-stm a separate step to #'connect I tried looking at the docstrings for each fn but they were both nil :-( Sam --- http://sam.aaron.name On 1 Dec 2011, at 17:21, David Edgar Liebke wrote: > Did you initialize the STM? > > (init-stm client) > > You only need to d

Re: [ANN] Avout: Distributed State in Clojure

2011-12-01 Thread David Edgar Liebke
Fantastic, I've added the init-stm step to the code snippet at the top of the Avout site, it was an accident to leave it out. It's been great "pairing" with you two :) David > Works perfectly for me too. Perhaps it might help to add that to the example > snippet to stop idiots like myself fall

Re: [ANN] Avout: Distributed State in Clojure

2011-12-01 Thread Sam Aaron
On 1 Dec 2011, at 17:21, David Edgar Liebke wrote: > Did you initialize the STM? > > (init-stm client) Works perfectly for me too. Perhaps it might help to add that to the example snippet to stop idiots like myself falling into that trap :-) Sam --- http://sam.aaron.name -- You received th

Re: [ANN] Avout: Distributed State in Clojure

2011-12-01 Thread Edmund
That's the ticket! Thanks David, its working for me now. On 01/12/2011 17:21, David Edgar Liebke wrote: > (init-stm client) -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts

Re: [ANN] Avout: Distributed State in Clojure

2011-12-01 Thread David Edgar Liebke
Did you initialize the STM? (init-stm client) You only need to do it the first time, to set up the necessary zookeeper nodes, it's described in the main tutorial but not the snippet on the top of the avout site. David On Dec 1, 2011, at 12:15 PM, Sam Aaron wrote: > Hi David, > > thanks for

Re: [ANN] Avout: Distributed State in Clojure

2011-12-01 Thread Sam Aaron
Hi David, thanks for looking into this so promptly. Sadly 0.5.1 just throws a different exception: user=> (def client (connect "127.0.0.1")) #'user/c

Re: [ANN] Avout: Distributed State in Clojure

2011-12-01 Thread David Edgar Liebke
Thanks Sam and Edmund, The stack traces were helpful, I think I understand what the immediate problem is. It appears that the transaction ID in these cases is not getting set, and then Avout is trying to write data to the ZooKeeper node /stm/history/ instead of /stm/history/txid. Since I can'

Re: [ANN] Avout: Distributed State in Clojure

2011-12-01 Thread Sam Aaron
Hi David, I nuked all my zookeeper deps in my lib and ~/.m2 dirs, but similar to Edmund experience it doesn't fix anything. My stacktrace is also identical: ∴ /Users/sam/tmp/avv λ

Re: [ANN] Avout: Distributed State in Clojure

2011-12-01 Thread Edmund
Hey Sam & Dave, I'm following along at home. I followed David's advice and there's no change. FWIW here's the client datastructure and the exception stacktrace: # java.lang.IllegalArgumentException: Path must not end with / character at org.apache.zookeeper.common.PathUtils.validatePat

Re: [ANN] Avout: Distributed State in Clojure

2011-12-01 Thread Edmund
Hey David, I get an identical exception here here w/ zookeeper version 3.2.2. Because I'm crazy that way I also tried to call the ref "/r0/" (just to see) and the exception came up. However it was different in that with "/r0/" I got the usual exception handling in emacs, whereas with "/

Re: [ANN] Avout: Distributed State in Clojure

2011-12-01 Thread David Edgar Liebke
Hi Sam, > run-in-transaction exception: # java.lang.IllegalArgumentException: Path must not end with / character> nil Very interesting, I wouldn't expect that particular exception unless you named the zk-ref "/r0/" instead of "/r0", which you apparently didn't. And even when I do call it "/r

Re: [ANN] Avout: Distributed State in Clojure

2011-12-01 Thread Sam Aaron
Hi David, I'm super excited by Avout. It seems *better* than magic in that it not only appears to make complicated things possible, but also in a conceptually transparent way. Crazy cool. I'm about to look into this in detail, but I thought I'd just post an issue I'm having with the basic exam

Re: [ANN] Avout: Distributed State in Clojure

2011-11-29 Thread kovas boguta
Congrats on the release! Looks like the world just got a bit more civilized :) Particularly excited to see how far this concept of distributed refs can go while remaining simple: - Using S3 as the backing store - Massively distributed STM. For example, every user of clojure sharing datastructure

Re: [ANN] Avout: Distributed State in Clojure

2011-11-29 Thread liebke
1) On the avout.io site, is the diagram of conflicting transactions > correct? It looks to me like the red arrow is in the wrong place (and it > doesn't match the description below it, points 5 and 6). > Great catch, I had intended to fix the figure before release but forgot. It's fixed now.

Re: [ANN] Avout: Distributed State in Clojure

2011-11-29 Thread Gary Trakhman
The issue with transactions not overlapping with in-memory ones implies some separation to deal with distributed coordination, I think. Are there any guidelines or interesting papers on how to create an effective distributed architecture with these semantics? -- You received this message beca

Re: [ANN] Avout: Distributed State in Clojure

2011-11-29 Thread Chris Perkins
Wow. It will take a while to digest this before I can even dream of what possibilities this opens up. In the meantime, a couple of simple questions: 1) On the avout.io site, is the diagram of conflicting transactions correct? It looks to me like the red arrow is in the wrong place (and it do

[ANN] Avout: Distributed State in Clojure

2011-11-29 Thread liebke
Today we are releasing Avout, which brings Clojure's in-memory model of state to distributed application development by providing a distributed implementation of Clojure's Multiversion Concurrency Control (MVCC) STM along with distributable, durable, and extendable versions of Clojure's Atom and Re