Built-in throttle mechanism for AXL update requests

Version 1
    This document was generated from CDN thread

    Created by: David Nguyen on 11-06-2008 06:06:27 PM
    The AXL service has a built-in throttle mechanism for AXL update requests, how should my application work with it?

    Subject: Re: Built-in throttle mechanism for AXL update requests
    Replied by: David Nguyen on 11-06-2008 06:07:09 PM
    There are a number of considerations with regard to AXL and throttling:

    • AXL can have a large impact on CallManager, impacting its ability to process calls in a timely manner. AXL 'reads' are generally much lighter weight than 'writes' and AXL does not impose a throttle on AXL reads, however it is still important that AXL applications understand (and test) the impact their reads will have on CCM, especially if the target data-set is potentially large or the potential # of reads is high (i.e. getPhone on 30K phones)
    • AXL write operations have a wide range of impact, from small to very large (updating a single CSS on a very large operating CCM dataset can spike the CPU for many seconds). While the AXL throttle keeps a (very) general throttle window enforced, it is important that applications understand the real impact of their write operations and throttle themselves accordingly.
    • AXL will attempt to execute requests in parallel. This can increase the overall as well as instantaneous impact of multiple requests if they arrive all at once, as threading and DB contention issues can occur.
    Even though the AXL write throttle will accept (and execute) many simultaneous requests - up to the throttle limit per minute - it is highly desireable that applications 'spread-out' requests so as to reach the target rate-per-minute (e.g. 60.)
    • Other AXL applications can be contending for the (global) maximum request rate. Even though the CCM AXL rate parameter is set to a certain value, applications should be prepared to gracefully handle less than max rates when other AXL apps are also in operation.
    • The global AXL request rate is both readable and writeable by AXL itself. Applications should use this to determine the throttling rate and ajust accordingly. They can also use this ability to increase the AXL throttle - perhaps temporarily increasing it to 999 to enable fast-as-possible operations during a down-time maintenance window (an onscreen warning is recommended!)