Next: , Up: Persistence stores   [Contents][Index]


8.7.1 Bloblin Store

This provides a fast and efficient Syrup based store. Goblins vats are usually efficient providing only the deltas (i.e. the portraits of changed objects), rather than the full graph. This store is able to be fast by streaming these deltas to the file. This is much faster than writing out the full graph each time an object changes (or rather for each churn).

The store is provided by (goblins persistence-store bloblin).

Procedure: make-bloblin-store bloblin-dir [#:deltas-per-file] [#:max-bloblin-files]

Return a memory store which will write its data to bloblin-dir. This directory is expected to be used solely for Bloblin’s data to exist within. The number of deltas streamed to a single file before a new file is written to can be configured with deltas-per-file, by default it occurs every 1000 deltas. If deltas-per-file is set to #f, then creating a new file based solely on the deltas will be disabled. During normal operation Goblins tries to be efficient using only deltas, but Goblins sometimes does still need to save a full graph (e.g. when upgrading the roots of a graph). When Goblins saves a full graph, Bloblin will always create a new file regardless of what deltas-per-file is set to.

If max-bloblin-files is specified, only max-bloblin-files number of bloblin files will be kept (deleting the older bloblin files). By default this is #f, which disables deletion of older bloblin files allowing them to accumulate over time.