On 09.09.2016 01:39, dgrnbrg wrote: > This sort of thing is also the goal of Datacrypt & Hitchhiker trees > (https://github.com/datacrypt-project/hitchhiker-tree), which are > designed to be highly optimized for I/O.
Sorry for the late reply, I was a bit busy. I have also implemented a redis backend for our async kv-store protocol: https://github.com/replikativ/konserve/blob/master/src/konserve/carmine.clj Thanks for pointing out, this is very nice! I have just read https://github.com/datacrypt-project/hitchhiker-tree/blob/master/doc/hitchhiker.adoc Using a B+ tree approach would also have been my next take, but the hitchhiker combination with an append log is really cool. I am interested in having these sorted datastructures as building blocks for CRDT metadata in the longer run. > > We've been making progress on the GC and adding new backends--it would > be awesome to be able add a CLJS port too :) Cool :) I have only thought about GC so far. To support cljs one needs to be aware that all blocking IO calls won't work. That is why I have started with a core.async kv-protocol. Can you imagine using something like it? To support Datascript in cljs, one would then also need to use something along the lines of async operations to fetch index fragments during the query. But for the current hitchhiker tree it should not be too invasive and the performance should not be affected. I think IResolve, IBackend (and maybe some more), need to return go channels, the rest can be added gradually. I haven't looked into it in detail yet. Have you had a look at replikativ? I would be interested in feedback and critique :). I don't know what your current take on CRDTs is (I have found the nice OR-SWOT in libdistsys :) ), I will be doing my master thesis with Annette Bieniusa soon, one of the authors of the paper about it. I haven't done as much Clojure backend integration as you yet, since I wanted to have cljs support for an open replication system and couldn't wire any JVM technology in (including the implementation of synchronous standard datatype protocols for asynchronous operations). But I think it is definitely a good way to start in the Clojure backend as you have done. As far as I can see the CRDTs in libdistsys are supposed to be used with a network (the simulator is a good idea). Have you plans for a complete middleware? Best, Christian P.S.: I have played around with piplin two years ago, do you still work with FPGAs? -- Note that posts from new members are moderated - please be patient with your first post. --- You received this message because you are subscribed to the Google Groups "ClojureScript" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojurescript+unsubscr...@googlegroups.com. To post to this group, send email to clojurescript@googlegroups.com. Visit this group at https://groups.google.com/group/clojurescript.
signature.asc
Description: OpenPGP digital signature