Project

General

Profile

Actions

Feature #61532

closed

implement retry expiery mechanism for persistent notifications

Added by Yuval Lifshitz 11 months ago. Updated 8 months ago.

Status:
Resolved
Priority:
Normal
Assignee:
-
Target version:
-
% Done:

0%

Source:
Community (user)
Tags:
notifications
Backport:
Reviewed:
Affected Versions:
Pull request ID:

Description

currently persistent notifications are retried indefinitly.
the only limiting mechanism that exists is that all notifications are stored in one RADOS object (of size 128MB).
assuming notifications are ~1KB, this would give us about 128K notifications that can wait in the queue.
when the queue fill up (e.g. kafka broker is down for 20 minutes, we are sending ~100 notifications per second) we start sending "slow down" replies to the client, and the S3 operation are not performed.
to avoid that we propose several options:
  • use a fifo instead of a queue. this would allow us to hold more than 128K messages, and survive longer broker outages, and at higher message rate. there should still probably be a limit set on the size of the fifo
  • define maximum number of retires allowed for a notification
  • define maximum time the notification may stay in the queue before it is removed

would recommend that these definitions are done as topic attributes, reflecting our delivery guarantees for this spoecific destination.
would recommend that at first this

Actions

Also available in: Atom PDF