Skip to content
Snippets Groups Projects
  • George Joseph's avatar
    c2adeb9d
    taskprocessor: Enable subsystems and overload by subsystem · c2adeb9d
    George Joseph authored
    To prevent one subsystem's taskprocessors from causing others
    to stall, new capabilities have been added to taskprocessors.
    
    * Any taskprocessor name that has a '/' will have the part
      before the '/' saved as its "subsystem".
      Examples:
      "sorcery/acl-0000006a" and "sorcery/aor-00000019"
      will be grouped to subsystem "sorcery".
      "pjsip/distributor-00000025" and "pjsip/distributor-00000026"
      will bn grouped to subsystem "pjsip".
      Taskprocessors with no '/' have an empty subsystem.
    
    * When a taskprocessor enters high-water alert status and it
      has a non-empty subsystem, the subsystem alert count will
      be incremented.
    
    * When a taskprocessor leaves high-water alert status and it
      has a non-empty subsystem, the subsystem alert count will be
      decremented.
    
    * A new api ast_taskprocessor_get_subsystem_alert() has been
      added that returns the number of taskprocessors in alert for
      the subsystem.
    
    * A new CLI command "core show taskprocessor alerted subsystems"
      has been added.
    
    * A new unit test was addded.
    
    REMINDER: The taskprocessor code itself doesn't take any action
    based on high-water alerts or overloading.  It's up to taskprocessor
    users to check and take action themselves.  Currently only the pjsip
    distributor does this.
    
    * A new pjsip/global option "taskprocessor_overload_trigger"
      has been added that allows the user to select the trigger
      mechanism the distributor uses to pause accepting new requests.
      "none": Don't pause on any overload condition.
      "global": Pause on ANY taskprocessor overload (the default and
      current behavior)
      "pjsip_only": Pause only on pjsip taskprocessor overloads.
    
    * The core pjsip pool was renamed from "SIP" to "pjsip" so it can
      be properly grouped into the "pjsip" subsystem.
    
    * stasis taskprocessor names were changed to "stasis" as the
      subsystem.
    
    * Sorcery core taskprocessor names were changed to "sorcery" to
      match the object taskprocessors.
    
    Change-Id: I8c19068bb2fc26610a9f0b8624bdf577a04fcd56
    c2adeb9d
    History
    taskprocessor: Enable subsystems and overload by subsystem
    George Joseph authored
    To prevent one subsystem's taskprocessors from causing others
    to stall, new capabilities have been added to taskprocessors.
    
    * Any taskprocessor name that has a '/' will have the part
      before the '/' saved as its "subsystem".
      Examples:
      "sorcery/acl-0000006a" and "sorcery/aor-00000019"
      will be grouped to subsystem "sorcery".
      "pjsip/distributor-00000025" and "pjsip/distributor-00000026"
      will bn grouped to subsystem "pjsip".
      Taskprocessors with no '/' have an empty subsystem.
    
    * When a taskprocessor enters high-water alert status and it
      has a non-empty subsystem, the subsystem alert count will
      be incremented.
    
    * When a taskprocessor leaves high-water alert status and it
      has a non-empty subsystem, the subsystem alert count will be
      decremented.
    
    * A new api ast_taskprocessor_get_subsystem_alert() has been
      added that returns the number of taskprocessors in alert for
      the subsystem.
    
    * A new CLI command "core show taskprocessor alerted subsystems"
      has been added.
    
    * A new unit test was addded.
    
    REMINDER: The taskprocessor code itself doesn't take any action
    based on high-water alerts or overloading.  It's up to taskprocessor
    users to check and take action themselves.  Currently only the pjsip
    distributor does this.
    
    * A new pjsip/global option "taskprocessor_overload_trigger"
      has been added that allows the user to select the trigger
      mechanism the distributor uses to pause accepting new requests.
      "none": Don't pause on any overload condition.
      "global": Pause on ANY taskprocessor overload (the default and
      current behavior)
      "pjsip_only": Pause only on pjsip taskprocessor overloads.
    
    * The core pjsip pool was renamed from "SIP" to "pjsip" so it can
      be properly grouped into the "pjsip" subsystem.
    
    * stasis taskprocessor names were changed to "stasis" as the
      subsystem.
    
    * Sorcery core taskprocessor names were changed to "sorcery" to
      match the object taskprocessors.
    
    Change-Id: I8c19068bb2fc26610a9f0b8624bdf577a04fcd56
To find the state of this project's repository at the time of any of these versions, check out the tags.