Атомарность BigTable checkAndMutate

Каково поведение checkAndMutate? Допустим, мне нужно получить содержимое строки перед применением checkAndMutate. Есть ли шанс получить устаревшие данные из BigTable? Если нет возможности получить устаревшие данные, хорошо ли я думаю:

  1. Получить содержимое строки по ключу,
  2. Изменить содержимое строки в приложении,
  3. Примените функцию checkAndMutate к строке.

person Matus Cimerman    schedule 30.01.2018    source источник


Ответы (1)


CheckAndMutate является атомарным. Вот определение API. Есть вероятность, что между шагами №1 и №3 произошло изменение. Ваш checkAndMutate должен гарантировать, что метка времени для нужных вам ячеек имеет те же значения, что и № 3, чтобы гарантировать, что вы обновляете те же данные, которые вы читаете.

person Solomon Duskis    schedule 30.01.2018
comment
Это были именно мои мысли, просто хотел убедиться. Спасибо! - person Matus Cimerman; 30.01.2018