- Jul 02, 2021
-
-
Igor Chorążewicz authored
In pmemkv we have a use for keeping inline_string in DRAM. It's also safe (unlike for e.g. pmem::obj::string) since inline_string does not manage allocations.
-
- Jun 23, 2021
-
-
Łukasz Stolarczuk authored
mpsc_queue: extend queue to support arbitrary sized values
-
Igor Chorążewicz authored
It needs to be further debugged
-
Igor Chorążewicz authored
- rename try_consume to try_consume_batch - rename read_accessor to batch_type - clear cachelines only after user callback executes: this allows iterating over the data arbitrary number of times (including 0) - call user callback within a transaction to simplify logic
-
Igor Chorążewicz authored
-
Igor Chorążewicz authored
-
Igor Chorążewicz authored
-
Igor Chorążewicz authored
- remove recover() method (try_consume can now be used) - store written offset on pmem so that we can recover consumer/producer offsets on restart - call user callback twice in try_consume if wraparound happens
-
- Jun 21, 2021
-
-
Igor Chorążewicz authored
And remove size parameter from mpsc_queue ctor - rely on pmem_log_type size.
-
Igor Chorążewicz authored
-
Igor Chorążewicz authored
Fix windows CI build
-
- Jun 18, 2021
-
-
Łukasz Stolarczuk authored
we want to enable builds, but current queue implementation is problematic on Windows - it will be fixed along other queue changes.
-
Igor Chorążewicz authored
Radix: concurrent iteration
-
- Jun 15, 2021
-
-
Igor Chorążewicz authored
-
Igor Chorążewicz authored
-
- Jun 11, 2021
-
-
Igor Chorążewicz authored
-
Jan Dorniak authored
-
Igor Chorążewicz authored
Iterator operator++/--: Removing nodes/leaves which are pointed to be iterators might result in operator++/operator-- failures (since nodes/leaves are detached from the tree find_leaf/next_leaf functions will not find a proper entry). Fix this by adding a fallback path which just searches from the top (using lower_bound/upper_bound). internal_bound: Do not traverse the tree twice. Instead save the path from first traversal to a vector and just iterate over the vector. Before returning iterator to the user, we can check if the path changed (if any node on the path was modified). If so, the operation needs to be retried.
-
Igor Chorążewicz authored
Revert "gha: temporarily disable codecov"
-
- Jun 10, 2021
-
-
Łukasz Stolarczuk authored
This reverts commit 7a41d10f.
-
- Jun 09, 2021
-
-
Łukasz Stolarczuk authored
Extend run-build.sh error msg if no build_steps provided
-
Łukasz Stolarczuk authored
Mpsc queue
-
Pawel Karczewski authored
-
- Jun 08, 2021
-
-
Pawel Karczewski authored
-
Pawel Karczewski authored
-
Pawel Karczewski authored
* Make implementation header only * Opaque implementation in namespace * Use std::atomic instead of custom implementation * Modify ringbuf test to work with c++ changes
-
Pawel Karczewski authored
Importi multi-producer single-consumer (MPSC) ring buffer from https://github.com/rmind/ringbuf
-
Pawel Karczewski authored
-
Łukasz Stolarczuk authored
Implement defer free for radix_tree
-
Igor Chorążewicz authored
and enable overwrite tests (since runtime_initialize_mt is available).
-
Igor Chorążewicz authored
which enables single-writer multi-reader concurrency. After calling runtime_initialize_mt() each assignment (done through assing_val or insert_or_assign) does not modify the value in-place but rather allocates new node. Also, erase does not free nodes/leaves immediately but adds them to a garbage list which can be processed using garbage_collect.
-
Igor Chorążewicz authored
-
Igor Chorążewicz authored
-
Igor Chorążewicz authored
gha: temporarily disable codecov
-
- Jun 07, 2021
-
-
Igor Chorążewicz authored
-
Igor Chorążewicz authored
gha: temporarily disable windows builds
-
Igor Chorążewicz authored
-
- May 20, 2021
-
-
Łukasz Stolarczuk authored
Update dockers
-
- May 19, 2021
-
-
Łukasz Stolarczuk authored
-
Łukasz Stolarczuk authored
-