Persy 1.8
As been quite a while since the last release and here is a new release, is not too big, mostly include refactor and some new experimental APIs for debug, but let's go through the changes
Changes
Refactor Tx Structures
The biggest part in this release is a quite sizeable refactor of the transaction structures, in the specific before this refactor there was a single structure that managed the transaction, for both the case of runtime transaction, and the case of recovering and applying the transaction on open.
These two use cases are slightly different and need different structures and flow, runtime transaction need to keep locking for avoiding that concurrent operations modify the same structure, transaction recover do not needed that, only one thread would do recover, also the runtime transaction should periodically clean the log when all is committed, flushed and applied, on recover is better to clean the log when the recover is complete, to avoid issues for crash during recover.
So because of this I split the transaction logic in two structures, runtime tx and recover tx, this simplified a bit the overall logic at the end, also performances improved for recover case due to manage less structures.
Low level journal inspector
On new experimental API introduced in this version is an API to scan the journal pages without initializing the storage structures, this is mostly for debug and allow me to check the database journal without running on the risk of executing a not reproducible recover
That is all for this release.
Future
Development on Persy is slowing a bit, just due to some other life events and some other open source project getting the priority over this, also there are some rare high concurrency crash issues that I focus mostly when I hack on Persy that are taking priority over new developments, and making my Persy work not that fun, but hopefully when this critical issue are solved I can come back to implement new features at full power.
So in the specific there are not mayor plan in near future, just crash tests and fixes till I'm happy and I can focus again on features
