Hello!
I've faced annoying cl-prevalence behavior which I don't know how to deal with.
For example, consider this code that I want to run within a transaction:
(defun tx-add-item (store index item) (declare (ignore store)) (setf (gethash item index) t))
Current cl-prevalence implementation invokes (reset serialization-state) before each (serialize-*) call. So as long as I insert new items into the index, each log entry becomes bigger and bigger because it needs to deeply serialize "index" parameter with all its elements, including the new ones.
The problem that the index can contains thousands elements, and each of them can be a complex object itself with maybe more index tables. In such case a single transaction can consume a lot of resource.
My proposal is to not reset serialization-state before each transaction serialize step but to keep it until full snapshot is occurred. For me it seems to work correctly, but maybe I miss something?