basho / riak_kv

Riak Key/Value Store
Apache License 2.0
653 stars 233 forks source link

Tidying Tictac Ecosystem for non-users #1883

Open martinsumner opened 1 year ago

martinsumner commented 1 year ago

An eco-system of changes exist in Riak_KV around TictacAAE:

What of riak users that don't require any of these features? Some of these features create log noise (https://github.com/basho/riak_kv/pull/1875). A crashing process in one of these features can also trigger a crash of riak_kv (if done with sufficient intensity). The crashing issue has been seen when one of these processes was disabled using an environment variable change (and the disabled term of riak.conf was used instead of the boolean expected by the code).

A request has been made by @nsaadouni to look to bundle this ecosystem into a separate dependency. This might not be straight forward. Especially with respect to aae_fold support.

As a minimum though, what is proposed is:

For a user with a pure-basho feature set, they can be assured that their operation is not impacted by running of any processes from the nextgen ecosystem.

Another potential change might be to switch real-time repl to using a more standard mechanism to hook into the PUT process. The coordinator hook was made to reduce real-time latency, but can have issues with being too fast when not correctly configured. This would clean the riak_kv_vnode code for non-nextgenrepl users.

fadushin commented 11 months ago

👍🏽

Re: "real-time real" do you mean "next gen real-time repl"? (considering the fact that "legacy" realtime replication is hooked into the Put FSM already)

martinsumner commented 11 months ago

👍🏽

Re: "real-time real" do you mean "next gen real-time repl"? (considering the fact that "legacy" realtime replication is hooked into the Put FSM already)

Yes, that's correct. Currently nextgen real-time repl is hooked into the vnode coordinating the PUT (not as a post-commit hook), with the aim of reducing replication latency.