Pull to refresh

Comments 3

А почему в транзакции принимают участие два Primary узла?
Набор праймари (и бекап) узлов принимающих участие в транзакции зависит от маппинга ключей вовлеченных в транзакцию.

Пусть у нас было несколько операций внутри транзакции:
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).
А что будет в сценарии «Падение primary-узла на finish-фазе» при проблемах с сетью, когда первый primary и его бекапы не упали, а остались в отдельной подсети и не могут коммуницировать ни с координатором, ни с другим primary?
Sign up to leave a comment.