Почему операция набора memcached не идемпотентна? - PullRequest
2 голосов
/ 05 мая 2020
• 1000 * Мы предпочитаем удалять кэшированные данные вместо их обновления, поскольку удаления являются идемпотентными."

Почему обновление / установка не является идемпотентной операцией?

Бумагу можно найти здесь: https://www.usenix.org/system/files/conference/nsdi13/nsdi13-final170_update.pdf

1 Ответ

1 голос
/ 24 мая 2020

Если вы вызываете одно удаление за другим два раза, второе удаление не даст никакого эффекта. Обновление / установка здесь будет действовать по-другому: хотя оно не изменит значение, связанное с ключом, оно обновит время последнего доступа для ключа, изменяя logi c того, когда ключ будет удален. В этом смысле операция удаления ключа идемпотентна, а значение ключа обновления - нет.

Например, в документе они не хотят хранить ключ в кэше, если никто никогда не пытался его прочитать (даже если есть много записей для этого ключа в базе данных).

...