Вероятностная доменная служба идемпотентности с HyperLogLog

Я оцениваю подход к идемпотентности доменного сервиса, используя HyperLogLog [HLL].

Целью этого подхода будет обеспечение общего способа обеспечения идемпотентности без хранения большого количества бесполезной информации. Единственное требование - допуск для случайного дублирования (отправьте 2 электронных письма вместо одного).

В моем сценарии каждый запрос на обслуживание является объектом сообщения с функцией toHashCode. Алгоритм выглядит так:

  1. По получении запроса доменная служба вычисляет кардинальность HLL [S1] и сохраняет его как C1.
  2. Хэшзапроса [H] добавляется к копии HLL [S2], и количество элементов сохраняется как C2.
  3. Если C1 == C2, то запрос дублируется, и S2 следует отбросить.
  4. В противном случае запрос будет обработан и хеш [H] будет добавлен в HLL [S1].

Кто-нибудь сталкивался с подобным решением? (например, фильтр Блума)
Каковы будут недостатки этого вида решения?

0 ответов

Другие вопросы по тегам