Item request has been placed! ×
Item request cannot be made. ×
loading  Processing Request

Systems and methods for overload protection for real-time computing engines

Item request has been placed! ×
Item request cannot be made. ×
loading   Processing Request
  • Publication Date:
    July 06, 2021
  • معلومة اضافية
    • Patent Number:
      11055,148
    • Appl. No:
      15/792058
    • Application Filed:
      October 24, 2017
    • نبذة مختصرة :
      A method for providing overload protection to a real-time computational engine configured to compute a plurality of values corresponding to a plurality of entities includes, when an overload protector is in an overload state: identifying one or more entities in a normal status and having high corresponding load contributions; downgrading the identified one or more entities; in response to detecting that a load level is below a low threshold, transitioning the overload protector to a recovery state and beginning a cool down period; and, when the overload protector is in the recovery state: upgrading a first group of entities of the one or more downgraded entities to a normal status; determining whether the cool down period has ended; and in response to determining that the cool down period has ended: upgrading all downgraded entities to the normal status.
    • Inventors:
      Genesys Telecommunications Laboratories, Inc. (Daly City, CA, US)
    • Claim:
      1. A method for providing overload protection to a real-time computational engine of a contact center configured to compute values corresponding to entities, wherein each of the entities is a statistic corresponding to an aspect of contact center operations, and wherein the overload protection is being provided by an overload protector that, based on a load level of a computer system executing the real-time computational engine, controls a transition between a plurality of states, the states comprising: a normal state; an overload state; and a recovery state, the method comprising: when the overload protector is in the normal state: detecting a first load level of a computer system executing the real-time computational engine; and in response to detecting that the first load level exceeds a high threshold, transitioning the overload protector to the overload state; when the overload protector is in the overload state: selecting one or more of the entities (hereinafter “selected entities”), the selection being based, at least in part, on identifying ones of the entities that comprise a normal status and high corresponding load contributions; downgrading each of the selected entities to a downgraded status in accordance with a downgrade policy, wherein the downgraded status is defined as a status in which a given one of the selected entities comprises a lower load contribution than in the normal status; detecting a second load level of the computer system; and in response to detecting that the second load level is below a low threshold, transitioning the overload protector to a recovery state so to initiate a cool down period; and when the overload protector is in the recovery state: selecting an anticipated duration for the cool down period; selecting a chunk percentage parameter; dividing the anticipated duration of the cool down period into sub-periods in which each of the sub-periods comprises a percentage of the anticipated duration of the cool down period equal to the chunk percentage parameter; dividing the downgraded selected entities into groups of downgraded selected entities, such that each of the groups of downgraded selected entities comprises a percentage of the downgraded selected entities equal to the chunk percentage parameter; and successively upgrading the groups of downgraded selected entities within corresponding respective ones of the sub-periods.
    • Claim:
      2. The method of claim 1 , wherein the downgrade policy causes the real-time computation engine to reduce a frequency at which a value associated with a corresponding one of the selected entities is calculated.
    • Claim:
      3. The method of claim 1 , wherein the downgrade policy comprises reducing a frequency at which a value associated with a corresponding one of the selected entities is transmitted to a client.
    • Claim:
      4. The method of claim 1 , wherein the real-time computation engine is configured to: receive events from an external data source, each of the received events corresponding to one of the selected entities; in response to receiving each of the events, update an aggregate associated with the corresponding one of the selected entities and compute a value for the corresponding one of the selected entities using the updated aggregate; wherein the downgrade policy causes the real-time computation engine to stop updating the aggregates in accordance with the received events.
    • Claim:
      5. The method of claim 1 , wherein each of the entities is associated with a corresponding hit-count, the hit-count representing how often the entity is accessed; wherein the identifying the ones of the entities having the high corresponding load contributions comprises identifying ones of the entities having a high hit-count.
    • Claim:
      6. The method of claim 1 , wherein each of the entities comprises a priority; and wherein the selection of the selected entities is based, at least in part, on identifying ones of the entities that comprise a lower priority compared to other ones of the entities.
    • Claim:
      7. The method of claim 1 , wherein each of the entities comprises a priority; and wherein the selection of the selected entities is based, at least in part, on identifying ones of the entities that comprise a priority that is non-critical (hereinafter “non-critical priority”).
    • Claim:
      8. The method of claim 7 , wherein the ones of the entities that comprise the non-critical priority comprise ones of the entities unrelated to routing, wherein the ones of the entities unrelated to routing include: a one of the entities corresponding to a call queue length statistic; and a one of the entities corresponding to an agent availability statistic.
    • Claim:
      9. The method of claim 4 , wherein the statistics comprise at least two of average handling time, average waiting time, queue length, server load, interaction abandonment rate, and agent availability; wherein the load level is based, at least in part, on an arrival rate of the events; and wherein the downgrade policy causes the real-time computation engine to stop calculating a value associated with a corresponding one of the selected entities.
    • Claim:
      10. A computer system for providing overload protection to a real-time computational engine of a contact center configured to compute values corresponding to entities, wherein each of the entities is a statistic corresponding to an aspect of contact center operations, and the overload protection is being provided by an overload protector that, based on a load level of the computer system, the computer system executing the real-time computational engine, controls a transition between a plurality of states, the states comprising: a normal state; an overload state; and a recovery state, the computer system comprising: a processor; and memory having instructions stored thereon that, when executed by a processor, cause the processor to: execute the real-time computational engine; and execute the overload protector; the memory further having instructions stored thereon that, when executed by the processor, cause the processor to: when the overload protector is in the normal state: detect a first load level of a computer system executing the real-time computational engine; and in response to detecting that the first load level exceeds a high threshold, transition the overload protector to the overload state; when the overload protector is in the overload state: select one or more of the entities (hereinafter “selected entities”), the selection being based, at least in part, on identifying ones of the entities that comprise a normal status and high corresponding load contributions; downgrade each of the selected entities to a downgraded status in accordance with a downgrade policy, wherein the downgraded status is defined as a status in which a given one of the selected entities comprises a lower load contribution than in the normal status; detect a second load level of the computer system; and in response to detecting that the second load level is below a low threshold, transition the overload protector to a recovery state so to initiate a cool down period; and when the overload protector is in the recovery state: select an anticipated duration for the cool down period; select a chunk percentage parameter; divide the anticipated duration of the cool down period into sub-periods in which each of the sub-periods comprises a percentage of the anticipated duration of the cool down period equal to the chunk percentage parameter; divide the downgraded selected entities into groups of downgraded selected entities, which includes the first group of downgraded selected entities, such that each of the groups of downgraded selected entities comprises a percentage of the downgraded selected entities equal to the chunk percentage parameter; and successively upgrade the groups of downgraded selected entities within corresponding respective ones of the sub-periods.
    • Claim:
      11. The system of claim 10 , wherein the downgrade policy causes the real-time computation engine to reduce a frequency at which a value associated with a corresponding one of the selected entities is calculated.
    • Claim:
      12. The system of claim 10 , wherein the downgrade policy comprises reducing a frequency at which a value associated with a corresponding one of the selected entities is transmitted to a client.
    • Claim:
      13. The system of claim 10 , wherein the memory further has instructions stored thereon that, when executed by the processor, cause the processor to: receive events from an external data source, each of the received events corresponding to one of the selected entities; and in response to receiving each of the events, update an aggregate associated with the corresponding one of the selected entities and compute a value for the corresponding one of the selected entities using the updated aggregate; wherein the downgrade policy causes the real-time computation engine to stop updating the aggregates in accordance with the received events.
    • Claim:
      14. The system of claim 10 , wherein each of the entities is associated with a corresponding hit-count, the hit-count representing how often the entity is accessed; wherein the identifying the ones of the entities having the high corresponding load contributions comprises identifying ones of the entities having a high hit-count.
    • Claim:
      15. The system of claim 10 , wherein each of the entities comprises a priority; and wherein the selection of the selected entities is based, at least in part, on identifying ones of the entities that comprise a lower priority compared to other ones of the entities.
    • Claim:
      16. The system of claim 10 , wherein each of the entities comprises a priority; and wherein the selection of the selected entities is based, at least in part, on identifying ones of the entities that comprise a priority that is non-critical (hereinafter “non-critical priority”).
    • Claim:
      17. The system of claim 16 , wherein the ones of the entities that comprise the non-critical priority comprise ones of the entities unrelated to routing, wherein the ones of the entities unrelated to routing include: a one of the entities corresponding to a call queue length statistic; and a one of the entities corresponding to an agent availability statistic.
    • Claim:
      18. The system of claim 13 , wherein the statistics comprise at least two of average handling time, average waiting time, queue length, server load, interaction abandonment rate, and agent availability; wherein the load level is based, at least in part, on an arrival rate of the events; and wherein the downgrade policy causes the real-time computation engine to stop calculating a value associated with a corresponding one of the selected entities.
    • Patent References Cited:
      2002/0089936 July 2002 Givoly
      2005/0091657 April 2005 Priem
      2013/0290492 October 2013 ElArabawy
      2015/0117629 April 2015 Ristock
      2016/0036985 February 2016 Koren et al.
    • Other References:
      International Search Report and Written Opinion of International Searching Authority, dated Jan. 29, 2019 in related application PCT/US2018/056997, filed Oct. 23, 2018. cited by applicant
    • Assistant Examiner:
      Headly, Melissa A
    • Primary Examiner:
      Bullock, Jr., Lewis A
    • الرقم المعرف:
      edspgr.11055148