Replace app env with config

Currently, `stats_db` and `interval` are obtained from vm.args file
via `application:get_env/2`. This is surprising since IOQ already
depends on the config application for most of it's configuration
parameters.

This changes where those configuration values are obtained from
vm.args to .ini files.
1 file changed
tree: 1f5d04578ae8a6813976acf09c4f7fbc016de11e
  1. include/
  2. priv/
  3. src/
  4. test/
  5. .gitignore
  6. IOQ2.md
  7. operator_guide.md
  8. README.md
  9. rebar.config.script
README.md

IOQ classes

The following are the list of IOQ classes:

  • interactive
  • db_update
  • view_update
  • db_compact
  • view_compact
  • internal_repl
  • low

Bypassing IOQ

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.

Setting priorities

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.