Skip to content

fix: fault-tolerant governor raft operations via compare-and-swap

Georgy Moshkin requested to merge gmoshkin/fix-propose-timeout-in-governor into master

Summary

  • refactor: set_status is now a macro so that it's easier to add stuff

  • test: reduce test_ddl_create_table_abort flakiness

  • fix: use compare_and_swap for abortable plugin operations

  • fix: use compare_and_swap for DDL

  • fix: plugin cas used to check against wrong pico property

  • fix: use compare_and_swap for most Dml from governor

There's still some raft operations which we can't switch to compare_and_swap yet unfortunately.

  • feat: add ability to construct cas::Range from a Dml

  • fix: don't persist current vshard config anymore, use proc_get_vshard_config

  • fix: forbid plugin operations to non superusers

  • fix: somewhat better access denied error messages

  • fix: simplify cas range bounds, optimize the most common case

We only use Eq ranges

  • test: add test for governor propose op timeout

  • fix: mark most of error injection stuff with cfg(feature = "error_injection")


  • Related: #785 (closed)
  • Close #863 (closed)
  • Cherry-pick to: none
  • Docs follow-up: docs#343
    • add proc_get_vshard_config stored procedure
    • proc_cas структура параметра predicate изменилась. Сейчас она в доке не расписана, но это повод расписать. И op теперь можно передавать всех видов (раньше Nop и Commit были запрещены, см !1254 (823073a3))
Edited by Yaroslav Dynnikov

Merge request reports