We store code/data in zookeeper and riak. We serialize these using nippy.
You can get notified on changes using zookeeper watchers on the nodes
storing either children changes or changes to the node data as you wish.

We are highly satisfied with this, we also store configuration data in 
zookeeper.

We use clj-zookeeper directly. You can also have a look at avout, it implements 
locks, shared atoms, ...
This may shield you from some zookeeper implementation details.

We stayed away from avout mainly because we have strict performance 
real time requirements to meet. It's easier for us to monitor these through our 
own 
thin code layers wrapping specific semantics and decide were we want to store
stuff (zookeeper or riak or as a combo).
We run on clusters of small to server grade computers and needed a zero 
maintenance scalable solution.

With bigger backbones and the kind of use you have in mind, I would
look at avout first. Beware that zookeeper has a 1mbytes data size limit per 
node
and I do not think that avout circumvent this limit.

This may impact you or not depending on the size of what you intend to store.
We implemented an overspill to a riak bucket in some of our abstractions to 
overcome this limit while keeping the anchor in the zookeeper node space.

Since riak is also cluster aware it runs everywhere as zookeeper, it does not 
impact 
us maintenance wise other than a job we run from time to time to see if 
discrepancies appear over time between a zookeeper parent node children
and the key/value stored in the corresponding riak bucket.

You could also chunk data as zookeeper sequential nodes under a root node
and concatenate their data chunks back together. If there is no high usage of 
this
feature it will be acceptable performance wise.

Initially we implemented queues like this on top of zookeeper and performed
reasonably well for our needs.

Hope this helps,

Luc P.

> Hi,
> 
> I'm wondering what approaches people take if they want to have Clojure code
> loaded at runtime from some data store.
> 
> We operate a large website and I'd like the ability to deploy our mustache
> templates & immediate corresponding clojure code at will, rolling back etc
> if need be, without having to redeploy the host application.
> 
> I'm interested in what a potential dev process would look like, i.e. I
> still want the Clojure files on the local file system editable in Emacs
> (maybe through git submodules). I'm thinking the solution is to have a
> command line tool / build process that uploads a targeted module (template
> + Clojure code) into the data store (i.e. using Avout on ZooKeeper, or
> Datomic, whatever) and the main running application is notified that
> something has changed. We would then have a small management app on top of
> this where you can roll back between different revisions of the modules.
> 
> Not looking to reinvent any wheels here, more wondering what others have
> done,
> 
> thanks.
> 
> -- 
> -- 
> 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 from new members are moderated - please be patient with your 
> first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> --- 
> You received this message because you are subscribed to the Google Groups 
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
> 
--
Softaddicts<lprefonta...@softaddicts.ca> sent by ibisMail from my ipad!

-- 
-- 
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 from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to