Uploaded image for project: 'AdMaxLocal'
  1. AdMaxLocal
  2. AML-1593 Increase new account and new campaign deployment throughput
  3. AML-1601

stagger/randomize RateExceededError retry wait times so all threads don't retry at same time

    Details

    • Type: Sub-task
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: Apponaug
    • Labels:
      None
    • Sprint:
      Wickford - Sprint 1, Wickford - Sprint 2, Wickford - Sprint 3, Wickford - Sprint 4

      Description

      Deployments are a bottleneck (not a surprise) and we need to speed them up. The first thing is we're getting many RateExceededError responses and the code waits 60 seconds. Maybe if we didn't hammer the API as hard, we wouldn't get as many, and we most likely only need to wait 10 seconds, or 5 seconds, not 60 seconds. Also, when 20 threads make an API call at the same time and 16 get back the error, all 16 wait, then hammer the API and maybe 12 get back the error.. then 12 wait... so if we stagger/randomized the wait time and the API calls, we we might get less as well.

      http://wiki.ri.thesearchagency.com/index.php/Performance/Load_Testing

      After that, if it's still not as fast as we would like, we can use JProfiler to see where the bottlenecks are in the deployment process (in the listener, and also JBoss).

      Mike H. suggests implementing a mechanism that allows a dynamically-adjustable wait time between Google API calls, using RateExceededErrors as feedback to increase the wait time, and a "time since last error" factor to lower the wait time by some amount/percentage.

        Attachments

          Activity

            People

            • Assignee:
              anil.kumar Anil Kumar Halmadgi
              Reporter:
              caitlyn Caitlyn Duggan (Inactive)
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: