New in Version 0.10.456

Released 30 Jul 2013

  • Added typedefs for node handles and addresses, updated the interface and code to use these.
  • Switched to one pool of nodes per forest, instead of one pool per level.
  • Changed free list representation for node handles.
  • The node storage mechanism is now loosely coupled, and may be selected at runtime.
  • The node memory recycling mechanism is now loosely coupled. There are a few mechanisms to choose from.
  • Added a new node storage mechanism that uses compression.
  • Added ability to read and write DDs to a file.

Simple Interface Changes

  • The forest policy for specifying full vs sparse node storage has changed. Now, this is specified via storage_flags by combining flags ALLOW_FULL_STORAGE and ALLOW_SPARSE_STORAGE as appropriate.
  • The node storage scheme may be changed on a per forest basis, at runtime, by setting the forest policy as appropriate (member nodestor).
  • Removed forest policy recycleNodeStorageHoles, since the new policy nodestor allows to specify how nodes are stored and how holes are tracked (if at all).
  • In the forest class, added methods
    • writeEdges, to write one or more edges (and all nodes below) to a file in a machine readable format
    • readEdges, to read one or more edges (and all nodes below) from a file

Expert Interface Changes

  • The node storage interface has changed. This is likely to affect forest implementations, and not much else.
  • Different node storage schemes are implemented in the storage subdirectory. Motivated users may invent and use their own schemes.
  • In the expert_forest class, method reportMemoryUsage has been replaced by method reportStats.
  • expert_forest::markNodesInSubgraph and expert_forest::showNodeGraph now take an array of root nodes, instead of a single one.

Updated: