Skip to content

Incremental Deserialization

laforge49 edited this page Aug 3, 2011 · 39 revisions

Most approaches to serialization do not handle updates well, forcing you to deserialize an entire block and then reserialize it every time you make a small update. This is simply too slow when implementing a persistent store.

The answer is to deserialize only what you need, keep the serialized form of everything that was deserialized, and then reserialize only what was changed. For large blocks, the speed increase is quite significant. This was implemented in the jit package of AgileWiki5. But the problem with using the jit package is that queries should be able to share these structures but queries on jit structures are not threadsafe, as queries may deserialize more of the data.

The Incremental Deserialization project then is a rewrite of the AgileWiki5 jit package, this time using actors.

  1. Items
    1. IncDesInt
    2. IncDesLong
    3. IncDesString
    4. IncDesBoolean
    5. IncDesBytes
    6. IncDesIncDes
  2. Collections
    1. IncDesList
    2. IncDesNavMap
    3. IncDesSet

Clone this wiki locally