Under-utilised Features - Long Term Plan
Nobody has claimed this yet.
- Dominant language
- Erlang
- Stars
- 16
- Forks
- 12
- PR merge metrics
- No merged PRs in 30d
Description
There are some features within riak_core, that are rarely or never used. Should these features simply be removed going forward.
riak_core_bg_manager
- Used potentially in three places: riak_repl fullsync (
riak_repl.fullsync_use_background_manager); riak_kv handoff (riak_kv.handoff_use_background_manager); riak_kv hashtree aae (riak_kv.aae_use_background_manager). - In all three cases by default the use of background manager is configured to
off.
riak_core_throttle
- Used only within
riak_kv_entropy_manager.
riak_core_table_owner
- Used only by
riak_core_throttle(see above).
gen_nb_server
- Used in
riak_core_handoff_listener, and inriak_apiinriak_api_pb_listener. - Reason why a specific non-block server for TCP handling is required unknown.
- Was previously used in riak_repl, but since replaced by use of ranch.
- Question whether dedicated
riak_core_handoff_listeneris needed, with improvements to Erlang Distribution Protocol that may help with potential issues with inter-node traffic being overwhelmed with handoff data? - An alternative may be to use approach in
nextgenrepli.e. make handoff part of the API, and use the riak erlang client for handoff as this helps with issues with maintaining SSL/TLS compatability.
process_proxy
- Used only in
riak_core_handoff_listener. - Reasons unclear as to why it is required.
bloom
- Not used anywhere.
riak_replusesebloom.
riak_core_tracer|riak_core_dtrace
riak_core_traceronly used in riak_kv, withinriak_kv_get_fsmeunit test.- Do real-world Riak users use this?
riak_core_gen_server
- Taken from LShift/RabbitMQ originally - adds a priority queue in-front of the standard process mailbox. The RabbitMQ code still includes gen_server2 which appears to be an updated version of this.
- Used only in
riak_core_handoff_receiverand within riak_repl inriak_repl_fullsync_helper, but no use of priority. - Related PR for vernemq
riak_core_priority_queue
- Used only within
riak_core_gen_server(see above).
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing references to the listed modules, including riak_core_handoff_listener, riak_core_handoff_receiver, riak_core_gen_server, riak_core_throttle, and the linked Riak components. Compare each usage with the issue's stated alternatives and document which features can be removed; done requires a maintainer decision and an agreed implementation scope.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- erlang
- Domain
- distributed-systems
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100