Comments 3
А почему в транзакции принимают участие два Primary узла?
0
Набор праймари (и бекап) узлов принимающих участие в транзакции зависит от маппинга ключей вовлеченных в транзакцию.
Пусть у нас было несколько операций внутри транзакции:
Причем положим, что по аффинити функции:
В таком случае в транзакции у нас будет два праймари узла: узел A (key1, key2, key4) и узел B (key3).
Пусть у нас было несколько операций внутри транзакции:
cache.put(key1, val1);
cache.put(key2, val2);
cache.put(key3, val3);
cache.put(key4, val4);
Причем положим, что по аффинити функции:
- ключи key1 и key2 маппятся на партицию 1, праймари которой находится на узле A;
- ключ key3 маппится на партицию 2, принадлежащую узлу B;
- ключ key4 маппится на партицию 3, праймари которой, как и праймари партиции 1 находится на узле A;
В таком случае в транзакции у нас будет два праймари узла: узел A (key1, key2, key4) и узел B (key3).
+1
А что будет в сценарии «Падение primary-узла на finish-фазе» при проблемах с сетью, когда первый primary и его бекапы не упали, а остались в отдельной подсети и не могут коммуницировать ни с координатором, ни с другим primary?
+1
Sign up to leave a comment.
Архитектура транзакций в Apache Ignite