Skip to content

Parallel discovery

После того, как будет реализован тикет #48 (closed), нас ожидает интересный кейс.

Имеем кластер из трёх инстансов, в пирах у каждого указаны все три. Кластер успешно бутстрапится, все три инстанса становятся воутерами.

picodata run --instance-id i1 --peer i1,i2,i3
picodata run --instance-id i2 --peer i1,i2,i3
picodata run --instance-id i3 --peer i1,i2,i3

Проблемы начинаются, когда i1 дохнет. С одной стороны, в этом нет ничего страшного - кворум есть у i2+i3, и один из них станет лидером. С другой стороны, приджойнить в такой ситуации i4 будет всё равно невозможно:

picodata run --instance-id i4 --peer i1,i2,i3

Этот i4 начнет свой жизненный цикл с дискавери, и начнёт обход пиров с дохлого i1. Так как алгоритм дискавери реализован исключительно последовательно, i4 так и будет ломиться на i1 до скончания веков.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information