Cleanup wait_index Rust API
Навеяно !527 (merged) и !516 (merged).
Я хочу по всему продукту унифицировать названия операций:
-
read_lsn
,read_index
- получить текущее значение lsn или raft-индекса на сервере. -
wait_lsn
,wait_index
- дождаться пока применится заданный индекс.
Под raft-индексом всегда имеется в виду примененный (applied) индекс. Записи с другими состояниями никого не интересуют, поэтому путаницы не возникнет.
Открытым остается вопрос: надо ли в интерфейсе read_index / read_lsn отличать кворумное чтение от некворумного. Возможно аргументом, возможно отдельной функцией read_quorum_index. Но read_quorum_lsn мы реализовать пока не сможем (
Каждая из операций должна быть высунута в модуль traft::rpc
(не пора ли кстати его двинуть в crate::rpc
).
Функции read_index
и wait_index
должны быть частью traft::node::Node
.
Названия следует сделать идемпотентными на всех уровнях:
-
node.wait_for_read_state()
->node.read_index()
-
node_impl.read_state_async()
->node.read_index_async()
Документацию на всех уровнях стоит тоже актуализировать.
В питонячий интерфейс pytest
высунуть их тоже не помешает.