[PDB-2732] Refactor retry/discard logic for "in-memory" attempts Created: 2016/05/23  Updated: 2016/10/06  Resolved: 2016/06/27

Status: Closed
Project: PuppetDB
Component/s: None
Affects Version/s: None
Fix Version/s: PDB 4.2.0

Type: New Feature Priority: Normal
Reporter: Ryan Senior Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
relates to PDB-2865 Implement a quicker "inner loop" retr... Closed
Epic Link: Command Processing 2.0
Team: Systems Engineering
Story Points: 3


Currently, PDB failures get enqueued into the "scheduler" queue and get resubmitted to the regular queue after some amount of time has passed. Instead, the flow should be as follows

  1. Upon failure, the message is retried in-memory 10* times
  2. After 10* failures, the message progresses to 2nd level failure
  3. Message is retried 10* times for each 2nd level failure
  4. After 5* 2nd level failures, progresses to 3rd level
  5. 3rd level, the message is discarded, i.e. DLQ

Any number that has a '*' by it means it should be configurable. For now, second level can be the normal failure case (i.e. being delayed and reenqueued). Once the threadpools get in place, we will change this to scheduling a thread in memory to retry the message. To do these we need the new threadpool in place (separate ticket) then work to change this 2nd level behavior (separate ticket).

Comment by Ryan Senior [ 2016/08/08 ]

Released with 4.2.0

Generated at Wed Apr 01 14:26:59 PDT 2020 using Jira 8.5.2#805002-sha1:a66f9354b9e12ac788984e5d84669c903a370049.