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