Hi Dan, with respect to version management in MVStore, there are significant 
differences between 1.4.197 release and trunk, that’s why I would recommend to 
check out latest code.
Number of versions kept in a file-based store is determined by usage. In 
absense of registerVersionUsage() / deregisterVersionUsage() calls, only latest 
version will be kept. This is only safe to do in a single-threaded scenario 
without auto-commit. Once you have more than one thread (including background 
auto-commit one), “current” version may be not what you think it is, and your 
operation, i.e. map iteration via cursor, may fail due to the fact that version 
it was iterating on, has been removed. That is why interest in specific version 
(and coincidentally all subsequent ones) should be expressed via 
registerVersionUsage().
In addition, time-based policy may be used with setRetentionTime(), but it 
never be 100% reliable, and mainly exists for usage simplicity and backward 
compatibility.
You may call compactMoveChunks() if you want, but that not strictly necessary, 
because space occupied by unused versions will be eventually re-used.

-- 
You received this message because you are subscribed to the Google Groups "H2 
Database" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/h2-database.
For more options, visit https://groups.google.com/d/optout.

Reply via email to