- (#31) Previously, erlfdb could leak
{reference(), ready}
messages to the caller if the transaction UserFun was executed more than once. We will now flush such messages beforetransactional/2
returns control to the caller. Watches are unaffected. - (#32) Fixed documentation for versionstamps in
m:erlfdb_tuple
.
m:erlfdb_sandbox
: Creates and starts a database on your local filesystem that is to be used as a sandbox. That is, it can be useful for development tasks like tutorials and unit tests. It should not be used in a production setting.
Thank you to the following new contributors! :)
- drowzy
- The FDB Bindings Tester now runs under GitHub Actions
- Added macOS GitHub Action
- Several type specs in
erlfdb
were corrected.
erlfdb:wait_for_all_interleaving/2
: Given a list of fold_future() or future(), calling this function will wait on the futures at once, and then continue to issue any remaining get_range or get_mapped_range until the result set is exhausted. This allows fdbserver to process multiple get_ranges at the same time, in a pipelined fashion.erlfdb:get_range_split_points/4
: Companion towait_for_all_interleaving
, this is an fdbserver-supported function that will split a given key range into a partitioning set of ranges for which the key-values for each section are approximately equal to the providedchunk_size
option. There are limitations to this, namely that a hard maximum of 100 shards can be traversed. The defaultchunk_size
is 10000000 (in Bytes).erlfdb:get_range*
: The default behavior of get_range is now more explicit in the type specs and with thewait
option, with defaults totrue
. A value offalse
will return a fold_future(), andinterleaving
is an experimental feature that will use bothget_range_split_points
andwait_for_all_interleaving
to retrieve the range.