This repository has been archived by the owner on Mar 22, 2023. It is now read-only.
Releases: pmem/pmemstream
Releases · pmem/pmemstream
pmemstream version 0.2.1
This is, most likely, the last patch release of pmemstream project. It contains multiple fixes, documentation updates, refactors, minor CI/examples/CMake changes, along with new and updated tests.
The most relevant updates are listed below:
- Add shadow value to pmemstream_persisted_timestamp
- Fix and prune fences in atomic span ops
- Fix races (e.g., in region.c) and issues reported by TSAN
- Fix append benchmark for concurrent ops
- Extend entry_iterator_is_valid with an additional check
- Enable prefault at open/create time
- tests: extend multiple existing tests and add missing TCs
- tests: add check for recovery during recovery (a corner case for torn recovery process)
- Extend CMake with new options (e.g., for Thread Sanitizer and increased fortification level)
- Update manpages with detailed descriptions
pmemstream version 0.2.0
This is the second (still minor) release of pmemstream project.
It contains many functional updates, API changes, and reactors, along with new tests and examples.
New features:
- Asynchronous API, which uses libminiasync (https://github.com/pmem/miniasync) for concurrently appending data to the stream; currently, multiple threads can append data concurrently to different regions, but no two threads can append to the same one.
It includes new functions for appending and publishing data. It's exposing 2 stages of an append - committed and persisted with 2 functionspmemstream_async_wait_*(timestamp)
to wait for the given entry to be available for reading and/or for persistency guarantee. - Changed region and entry iterators API. It now provides
seek_first
,next
, andis_valid
functions for both types of iterators. It offers higher flexibility. - Multiple regions. A simple region allocator, allowing creation of multiple regions; for now, only supports a single region size (within a given stream).
- Timestamps for each entry to provide global entries' order (and easier recovery).
- Exposed
pmemstream_region_usable_size
function to read the currently available size in a given region; it can be used with the combination of "entire region size" function (pmemstream_region_size
) to, e.g., calculate the already used region's space. - Full documentation of public API in the form of manpages.
Other changes:
- Rename
pmemstream_entry_length
topmemstream_entry_size
for consistent naming convention, - Add a simple "append" benchmark,
- Enable integrity, consistency, and sanitizers tests,
- Add 4 more examples.