Change Log

Persy 1.3

Fixed snapshot release, that solve file oversize and long recover on open
Add limits of max size for transaction id
Fix recovery of free list, that correct wrong reads after crash
Improved journal logging to handle rollback on recover
Avoid that wrong data in journal make recover fail
Add specific errors on prepare for concurrent create of indexes and segments
Memory optimization of the recovery process
Fixed range operations in transaction

Persy 1.3

Increased resilience in case of crash
Add limits of max size for index key values sizes and record sizes
Fix on transaction recover logic

Persy 1.2

Reduced latency on background sync transactions
Minor improvement in serialization and index management

Persy 1.1

Speedups on index operation with ByteVec and String types
Minor speedup in record insert and update

Persy 1.0

Review of error management, each function has now specific errors
Simplified index lookup results
Add time based eviction of cache entries
Add commit and one "sugar methods" to reduce users boilerplate

Persy 0.11

Add some basic compression and optimization for disc usage
Stabilization of disc structures
Trim fill sizes in all possible cases
Increased number of possible segments
Fix all possible disk leak in case of crash

Persy 0.10

Support for only in memory storage
Improved space re-use
Add support for background disc sync
Improved disc access parallelism on unix systems
Bug fixes on recovery and snapshots
General API review and stabilization

Persy 0.9

Make public the snapshot API
Remove of API deprecated in previous version
Evolve recover API for more complex use cases
Tons of fixes in indexes API for range lookups and concurrency operations

Persy 0.8

Reduce the index locking from whole index to index page
Introduce new operations API on transaction structures
Made sure that only a single fsync is needed for commit a transaction
Optimization in index operations to reduce number of clones

Persy 0.7

Increase cases where is possible to shrink file on page free
Introduction of new OpenOptions API for better files management
Improved error management now is possible to get the original error
Add support for indexing of Vec<u8> types
First support for SegmentId from operations API

Persy 0.6

Add support for double ended iterators on index range API
Add access to underling transaction for transaction aware iterators, this allow modifications while iteration
Add support from u128,i128,f32,f64 types in index implementation
Open and create APIs now support all parameters that convert to Path, in the same way of the File API
Add support of shrinking of the file if the page freed is the last of the file
Optimization of disk writes when there are multiple changes for the same index in the same transaction

Persy 0.5

Internal introduction of snapshot for more parallel index access
Range lookup API on the index
Partial flush safety for base metadata structures
List of existing segments
List of existing indexes
Redesigned API for segment scan

Persy 0.4

Indexing of simple values
Multiple index modalities support
General clean up and optimization following clippy suggestions
Improved error management Improved transaction API and safety

Persy 0.3

Double open check with file lock
Guarantee disk space reuse recycling address space
API for drive transaction recover in case of crash
Introduced recover from crash and advanced concurrency management examples
Made sure that recover work in multiple crash scenario

Persy 0.2

Transactional scan
Multithread support for segment create and drop operations
Flush operations optimizations
Multiversion concurrency management for record update

Persy 0.1

Basic architecture
Transaction Journal
Transactional insert, update, delete, read
Non transactional read and scan
Two phase commit transactions
LRU Cache
Multithread Support for insert, update, delete, read operations
Transactional segment create and drop