Hi, I have finally taken the time yesterday in a good end-of-year tradition of ambitious hacks to bring the hitchhiker-tree (1) and datascript (2) together. I have only touched the db.cljc namespace in datascript and replaced all calls to the in-memory balanced-tree set (btset) with calls to the hitchhiker-tree, the rest is vanilla DataScript. All tests pass and I can store and load databases sufficiently with the three trees for the indices (no datascript serialization used).
I would like to have early feedback, so feel free to play and throw ideas around. You need to install my version of the hitchhiker-tree (1) first. Atm. it is a drop-in replacement for DataScript, but this is a prototype, don't use it for anything serious yet. Here is an example interaction with the store: https://github.com/whilo/datascript/blob/hitchhiker_tree_support/test/datascript/test/store.cljc Caveats: 1. There is no working GC for the hitchhiker-trees yet. 2. Performance penalty against DataScript is in the 20-100x range, but I haven't done serious profiling yet. 3. There are probably bugs that are not covered by the tests, please open an issue. Goals: This is more of an intermediary goal, although it is very useful to have a durable datascript around in itself. The hitchhiker-tree is a generic persistent durable datastructure that can be efficiently synched and hence replication is the goal. Next step is a "web-after-tomorrow" (3) architecture similar to datsync, that we are discussing about here: https://gitter.im/metasoarous/datsync https://gitter.im/replikativ/replikativ In the longer run we can allow multiple writers with different conflict-resolution scheme similar to CRDTs and the bloom language (dedalus). Happy hacking :), Christian (1) https://github.com/whilo/hitchhiker-tree (2) https://github.com/whilo/datascript/tree/hitchhiker_tree_support (3) http://tonsky.me/blog/the-web-after-tomorrow/ -- 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/d/optout.
signature.asc
Description: OpenPGP digital signature