
* Add test to replicate issue 459 Nothing actually crashes due to the issue - but looking at the logs there is the polarised stats associated with the issue. When merging into L3, you would normally expect to merge into 4 files - but actually we see FileCounter occasionally spiking. * Add partial merge support There is a `max_mergebelow` size which can be a positive integer, or infinity. It defaults to 32. If a merge from Level N covers less than `max_mergebelow` files in level N + 1 - the merge will proceesd as before. If it has >= `max_mergebelow`, the merge will be curtailed when `max_mergebelow div 2` files have been created at that level. The remainder for Level N will then be written, as well as for Level N + 1 up to the next whole file that has no yet been touched by the merge. The backlog that prompted the merge will still exist - as the files in Level N have not been changed. However, it is likely the next file picked will not be the same one, and will in probability have a lower number of files to merge (as the average is =< 8). This will stop progress from being halted by long merge jobs, as they will exit out in a safe way after partial completion. In the case where the majority of files covered do not require a merge, then those files will be skipped the next time the remainder file is picked up for merge at Level N
39 lines
1.3 KiB
Erlang
39 lines
1.3 KiB
Erlang
{minimum_otp_vsn, "22.3"}.
|
|
|
|
{xref_checks,
|
|
[undefined_function_calls,undefined_functions,
|
|
locals_not_used,
|
|
deprecated_function_calls, deprecated_functions]}.
|
|
|
|
{cover_excl_mods,
|
|
[testutil,
|
|
appdefined_SUITE, basic_SUITE, iterator_SUITE,
|
|
perf_SUITE, recovery_SUITE, riak_SUITE, tictac_SUITE]}.
|
|
|
|
{eunit_opts, [verbose]}.
|
|
|
|
{project_plugins, [
|
|
{eqwalizer_rebar3, {git_subdir, "https://github.com/OpenRiak/eqwalizer.git", {branch, "openriak-3.4"}, "eqwalizer_rebar3"}}
|
|
]}.
|
|
|
|
{profiles,
|
|
[{eqc, [{deps, [meck, fqc]},
|
|
{erl_opts, [debug_info, {d, 'EQC'}]},
|
|
{extra_src_dirs, ["test/property", "test/end_to_end"]},
|
|
{shell, [{apps, [lz4]}]},
|
|
{plugins, [rebar_eqc]}
|
|
]},
|
|
{test, [{extra_src_dirs, ["test/end_to_end", "test/property"]}
|
|
]},
|
|
{perf_full, [{erl_opts, [{d, performance, riak_fullperf}]}]},
|
|
{perf_mini, [{erl_opts, [{d, performance, riak_miniperf}]}]},
|
|
{perf_prof, [{erl_opts, [{d, performance, riak_profileperf}]}]}
|
|
]}.
|
|
|
|
{deps, [
|
|
{lz4, ".*", {git, "https://github.com/nhs-riak/erlang-lz4", {branch, "nhse-develop-3.4"}}},
|
|
{zstd, ".*", {git, "https://github.com/nhs-riak/zstd-erlang", {branch, "nhse-develop"}}},
|
|
{eqwalizer_support, {git_subdir, "https://github.com/OpenRiak/eqwalizer.git", {branch, "openriak-3.4"}, "eqwalizer_support"}}
|
|
]}.
|
|
|
|
{ct_opts, [{dir, ["test/end_to_end"]}]}.
|