More and more I find myself thinking about my old nemesis, the universal, can do anything data structure, Rolons. I know what can be done with them, I've just not been able to implement them in a form that I am comfortable with. So what am I calling a Rolon these days?
A Rolon is durable and named.
A Rolon is a b-tree (balanced, not binary)-like structure that spans multiple disk blocks and can grow to something larger than RAM.
A Rolon is a map of lists, recursively. Where there is no real limit on the number of lists nor on the size of them.
A Rolon is a versioned structure, allowing access to past state for any prior time.
OK, that's all very old ideas. Here now are some current thoughts on implementation.
A Rolon can be built using variations on AA Tree.
A Rolon is an immutable data structure for easy sharing across threads.
A Rolon does lazy deserialization and fast reserialization. But in a thread-safe way.
Because a Rolon is versioned, threads can share a mutable handle to a Rolon. Providing any given accessor is tied to a specific time.
Now for my quandary. How to divide this up into smaller projects? :D
Bill