rabbitmq / ra

A Multi-Raft implementation for Erlang and Elixir that strives to be efficient and make it easier to use multiple Raft clusters in a single system.
Other
830 stars 95 forks source link

ra_server: Add a new `last_applied` state query #462

Closed dumbbell closed 4 months ago

dumbbell commented 4 months ago

Why

ra_server_proc was querying overview up until now to get the last applied index as part of the handling of conditions for queries.

This call was very expensive, leading to really poor performance of conditional queries (like a whopping 3000 times slower).

How

We add a dedicated state query to get the last_applied value only.