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.
We've been making progress on the GC and adding new backends--it would be awesome to be able add a CLJS port too :) Best, David On Thursday, September 8, 2016 at 4:28:08 PM UTC-6, Christian Weilbach wrote: > > Hi, > > I have started some explorations for durable persitent indices in a > cross-platform fashion, that I wanted to for quite some time now. There > are some other implementations of persistent datastructures with > synchronous IO on the JVM, but I would like to go a step further and > generalize over any key-value store like medium. I am primarily > interested in critique and references to other work or experience > implementing efficient indices on disk. In the longer run I want to use > these indices as a building block for databases in Clojure(Script). > > https://github.com/replikativ/durable-persistence > > From the README: > > This repository is for exploration of persistent datastructures on a > durable medium. The durable medium is abstracted away by a minimalistic > key-value protocol providing atomic operations (ACID) on single keys. > This decouples the implementation of the persistent datastructure from > the host and backend store. > > The repository contains an adaptation of the cookbook in-memory version > of a red black tree. Instead of keeping all fragments in memory we > introduce a Reference type to fragments in the store and dynamically > load and store fragments. The root can be assigned to a fixed key, > modelling a durable identity similar to a Clojure atom. > > The long term motivation is to provide efficient indices as a building > block for datatype management independent of JVM IO libraries spanning > also to ClojureScript and the Browser. With konserve an IndexedDB > storage backend for the Browser already exists. For this reason IO > should happen asynchronously through core.async in konserve. A durable > Index for DataScript would be nice :). > > > Feedback is appreciated :), > Christian > > -- 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.