Too often when dealing with data saved on disk you find yourself having to 
deserialize a large block of data, make a small update, and then 
reserialize the whole thing and write it back to disk. Deserialization and 
reserialization are quite slow, so having to deserialize and reserialize a 
large block of data for each small update creates a bottleneck. In this 
case, incremental deserialization / reserialization will be a substantial 
improvement.

Release 0.3.0 provides lazy aa maps and lazy aa vectors, which can be used 
as the top-level container for large blocks of durable data. Serialized 
data is binary and organized in a binary tree. To access an entry, only the 
nodes in the path from the root to the node of interested must be 
deserialized. And only the updated nodes (and their parent nodes) need to 
be subsequently reserialized. So the speed improvement is substantial. 
(Benchmark code is provided)

As with previous releases, collection-check 
<https://github.com/ztellman/collection-check> is used to validate the 
vector and map implementations.

https://github.com/laforge49/aatree#readme

Your feedback here is greatly appreciated!

Bill

-- 
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.

Reply via email to