commit | 7c6cd10040db2b11adde2232512adec1f6842404 | [log] [tgz] |
---|---|---|
author | Jay Doane <jaydoane@apache.org> | Tue Apr 05 12:48:10 2022 -0700 |
committer | Jay Doane <jaydoane@apache.org> | Tue Apr 05 12:48:10 2022 -0700 |
tree | 440818a5ce500254a27c42f858a41f410df6429c | |
parent | a91feeaa5cd092d9192a94f2fdd3996d6fc889d4 [diff] |
Guard against negative time deltas Despite the use of `erlang:monotonic_time/0`, it is still possible on some platforms, such as sleeping/awakening laptops, for time to move in surprising directions. When this happens, and a negative time delta is passed to `timebin/1`, it crashes with: bad arithmetic expression at math:log10/1 <= ioq_server:timebin/1(line:480) This adds a guard to return `0` for negative numbers as well as zero.
The following are the list of IOQ classes:
One can configure an ioq bypass, which removes an IO class from prioritization, as below:
config:set("ioq.bypass", "view_update", "true")
Note that setting an IOQ bypass can effectively trump all other classes, especially in the case of an interactive bypass v. compaction. This can lead to high disk usage.
The priority for a class can also be set ala:
config:set("ioq", "compaction", "0.3")
Or globally, using snippet/rpc:
s:set_config("ioq", "compaction", "0.314", global) rpc:multicall(config, set, ["ioq", "compaction", "0.217"])
As the interactive class is ‘everything else’ its priority cannot be directly set.