IP Library Granted Patent US 10,505,802
Granted Patent B2
US 10,505,802 · App. 14/930,281 · Granted Dec 10, 2019

Adaptive subscriber-driven resource allocation for push-based monitoring

Inventors: Alberto Gonzalez Prieto (Mountain View, CA); Alexander L. Clemm (Los Gatos, CA); Eric Voit (Bethesda, MD)
Assignee: Cisco Technology, Inc.
H04L41/082H04L12/1859H04L41/0886H04L67/26
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,505,802
App. No.
14/930,281
Granted
Dec 10, 2019
Kind
B2
Abstract

A method and apparatus for network resource allocation is provided. In some embodiments, the method comprises determining a subscriber limit rate at which a subscriber computer can process updates received from a plurality of publisher computers, wherein each of the updates comprises an electronic digital message received over a computer network; determining, for each publisher computer of the plurality of publisher computers, a not-to-exceed rate of updates sent to the subscriber computer and storing a plurality of the offered rates; determining by the subscriber computer, for each publisher computer of the plurality of publisher computer, a utility of updates sent by the publisher computer and storing a plurality of the utilities; assigning to each publisher computer of the plurality of publisher computers a publisher limit rate at which the respective publisher computer sends updates to the subscriber computer using the offered rate and the utility of updates of the respective publisher computer.

Claims (50)

1. A subscriber computer system providing control of rates at which a plurality of publisher computer systems send digital electronic update messages to the subscriber computer system comprising:

one or more processors;

a non-transitory computer-readable storage medium storing instructions which when executed by the one or more processors, cause the one or more processors to perform:

using the one or more processors, determining for a subscriber computer system a subscriber limit rate at which the subscriber computer system can process updates received from a plurality of publisher computer systems, and storing the subscriber limit rate in computer memory, wherein each of the updates comprises an electronic digital message received over a computer network;

using the one or more processors, determining, for each publisher computer system of the plurality of publisher computer systems, an offered rate of updates sent to the subscriber computer system and storing a plurality of the offered rates in the computer memory;

using the one or more processors, determining, for each publisher computer system of the plurality of publisher computer systems, a utility of updates sent by the publisher computer system and storing a plurality of the utilities in the computer memory, each utility that is associated with a publisher computer comprising a combination of a difference between a current value of a data element and a previous value of the data element, a first value set to indicate that the data element was created and that a previous update indicated it had been removed, and a second value set to indicate that the data element was removed and that the previous update indicated that it existed;

using the one or more processors, determining, for each publisher computer system of the plurality of publisher computer systems, a priority level of the publisher computer system in relation to other publisher computer systems of the plurality of publisher computer systems,

using the one or more processors, assigning to each publisher computer system of the plurality of publisher computer systems a publisher limit rate at which the respective publisher computer system sends updates to the subscriber computer system using the offered rate, the utility of updates of the respective publisher computer system, and the priority level of the publisher computer system.

2. The subscriber computer system of claim 1 , further comprising instructions which when executed cause:

using the one or more processors, receiving, from each of the publisher computer systems of the plurality of publisher computer systems, one or more updates over a period of time;

using the one or more processors, determining, for each publisher computer system of the plurality of publisher computer systems, an actual rate of updates;

using the one or more processors, determining, for each publisher computer system of the plurality of publisher computer systems, a ratio of the actual rate of updates and the publisher limit rate;

using the one or more processors, whenever the ratio is less than a threshold ratio, assigning to the publisher computer system, an updated publisher limit rate that is less than the offered rate of updates.

3. The subscriber computer system of claim 1 , further comprising instructions which when executed cause:

using the one or more processors, receiving, from each of the publisher computer systems of the plurality of publisher computer systems, one or more updates over a period of time;

using the one or more processors, determining, for each publisher computer system of the plurality of publisher computer systems, an actual rate of updates;

using the one or more processors, determining, for each publisher computer system of the plurality of publisher computer systems, a ratio of the actual rate of updates and the publisher limit rate;

using the one or more processors, whenever the ratio is greater than a threshold ratio, assigning to the publisher computer system, an updated publisher limit rate that is upper bounded by a maximum increase in the publisher limit rate.

4. The subscriber computer system of claim 1 , further comprising instructions which when executed cause:

using the one or more processors, sending to a publisher computer system of the plurality of publisher computer systems, an instantaneous publisher limit rate of zero.

5. The subscriber computer system of claim 1 , further comprising instructions which when executed cause:

using the one or more processors, determining, for each publisher computer system of the plurality of publisher computer systems, an available network bandwidth associated with the publisher computer system;

wherein the publisher limit rate of the publisher computer system is assigned using the available network bandwidth associated with the publisher computer system.

6. The subscriber computer system of claim 1 , further comprising instructions which when executed cause:

using the one or more processors, determining, for each publisher computer system of the plurality of publisher computer systems, a quality of service (QoS) class level of the publisher computer system;

wherein the publisher limit rate of the publisher computer system is assigned using the QoS class level of the publisher computer system.

7. A resource allocation method providing an improvement in control of rates at which a plurality of publisher computer systems send digital electronic update messages to the subscriber computer system comprising:

using one or more processors, determining for a subscriber computer system a subscriber limit rate at which the subscriber computer system can process updates received from a plurality of publisher computer systems, and storing the subscriber limit rate in computer memory, wherein each of the updates comprises an electronic digital message received over a computer network;

using the one or more processors, determining, for each publisher computer system of the plurality of publisher computer systems, an offered rate of updates sent to the subscriber computer system and storing a plurality of the offered rates in the computer;

using the one or more processors, determining, for each publisher computer system of the plurality of publisher computer systems, a utility of updates sent by the publisher computer system and storing a plurality of the utilities in the computer memory, each utility that is associated with a publisher computer comprising a combination of a difference between a current value of a data element and a previous value of the data element, a first value set to indicate that the data element was created and that a previous update indicated it had been removed, and a second value set to indicate that the data element was removed and that the previous update indicated that it existed;

using the one or more processors, determining, for each publisher computer system of the plurality of publisher computer systems, a priority level of the publisher computer system in relation to other publisher computer systems of the plurality of publisher computer systems,

using the one or more processors, assigning to each publisher computer system of the plurality of publisher computer systems a publisher limit rate at which the respective publisher computer system sends updates to the subscriber computer system using the offered rate, the utility of updates of the respective publisher computer system, and the priority level of the publisher computer system.

8. The resource allocation method of claim 7 , further comprising:

using the one or more processors, receiving, from each of the publisher computer systems of the plurality of publisher computer systems, one or more updates over a period of time;

using the one or more processors, determining, for each publisher computer system of the plurality of publisher computer systems, an actual rate of updates;

using the one or more processors, determining, for each publisher computer system of the plurality of publisher computer systems, a ratio of the actual rate of updates and the publisher limit rate;

using the one or more processors, whenever the ratio is less than a threshold ratio, assigning to the publisher computer system, an updated publisher limit rate that is less than the offered rate of updates.

9. The resource allocation method of claim 7 , further comprising:

using the one or more processors, receiving, from each of the publisher computer systems of the plurality of publisher computer systems, one or more updates over a period of time;

using the one or more processors, determining, for each publisher computer system of the plurality of publisher computer systems, an actual rate of updates;

using the one or more processors, determining, for each publisher computer system of the plurality of publisher computer systems, a ratio of the actual rate of updates and the publisher limit rate;

using the one or more processors, whenever the ratio is greater than a threshold ratio, assigning to the publisher computer system, an updated publisher limit rate that is upper bounded by a maximum increase in the publisher limit rate.

10. The resource allocation method of claim 7 , further comprising:

using the one or more processors, sending to a publisher computer system of the plurality of publisher computer systems, an instantaneous publisher limit rate of zero.

11. The resource allocation method of claim 7 , further comprising:

using the one or more processors, determining, for each publisher computer system of the plurality of publisher computer systems, an available network bandwidth associated with the publisher computer system;

wherein the publisher limit rate of the publisher computer system is assigned using the available network bandwidth associated with the publisher computer system.

12. The resource allocation method of claim 7 , further comprising:

using the one or more processors, determining, for each publisher computer system of the plurality of publisher computer systems, a quality of service (QoS) class level of the publisher computer system;

wherein the publisher limit rate of the publisher computer system is assigned using the QoS class level of the publisher computer system.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 2, 2015
From: PRIETO, ALBERTO GONZALEZ; CLEMM, ALEXANDER L.; VOIT, ERIC
To: CISCO TECHNOLOGY, INC.
Reel/Frame 036940/0062 →
Continuity (1)
Related Publication 20170126486A1 · May 4, 2017