Hi, performance is now a lot better, ~3-5x slower than datascript for queries on the fractal index trees on my machine. This still needs tuning ofc., but I have tried to make it fast with a lot of profiling during idle times at 34C3. The fractal tree causes some overhead though. Inserts are a lot more expensive, but I expect them to be written to disk anyway. Therefore comparing inserts/deletes with datascript is a bit pointless, if you do everything in memory then it will always be more performant.
So it should be usable for small test projects now. GC is still TODO, but I would be really happy for feedback! We are developing this as a toolbox for distributed dataprocessing architectures. Best, Christian On 26.12.2017 12:18, Christian Weilbach wrote: > 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