IP Library Granted Patent US 10,609,176
Granted Patent B2
US 10,609,176 · App. 16/402,815 · Granted Mar 31, 2020

Method and system for real-time resource consumption control in a distributed computing environment

Inventors: Elias Balafoutis (Zografou, GR); Grigorios Prasinos (Agia Paraskevi, GR)
Assignee: Unify GmbH & Co. KG
H04L67/2861G06F9/5061G06F9/5088H04L67/10H04L67/1002H04L67/28H04L67/2804H04L67/2833H04L67/2866
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,609,176
App. No.
16/402,815
Granted
Mar 31, 2020
Kind
B2
Abstract

A system for real-time resource consumption control in a distributed environment and a corresponding method can include a multitude of server instances having access to shared resources, whereby each request for a shared resource issued by a client application is handled by one of the server instances. A global resource consumption counter, representing the overall resource consumption of the multitude of server instances at a given time and a multitude of proxy servers can also be included. Each proxy server can include a receiver module for receiving resource consumption requests issued from a client application, a resource consumption decision module, a queue for collecting resource consumption requests, a local resource consumption counter representing the global resource consumption as seen by the respective proxy server, and/or a synchronization module for synchronizing the global resource consumption counter by interfacing with all other server instances.

Claims (167)

1. A system for real-time resource consumption control in a distributed environment comprising:

a multitude of server instances having access to shared resources, each request for a shared resource issued by a client application is handled by one of the server instances, each of the server instances having a processor connected to a non-transitory computer readable medium;

a global resource consumption counter, representing an overall resource consumption of the multitude of server instances at a given time; and

a multitude of proxy servers, each proxy server comprising

a receiver configured to receive resource consumption requests issued from a client application,

a queue for collecting resource consumption requests that have been locally accepted by the respective proxy server,

a local resource consumption counter, said local resource consumption counter being updated every time a resource consumption request is accepted by the proxy server;

each proxy server configured to synchronize the global resource consumption counter with the local resource consumption counter such that synchronizing the local resource consumption counter with the global resource consumption counter occurs by adding an amount of resource consumption of at least one of the requests received by the receiver to update the local resource consumption counter;

each proxy server configured so that, for each resource consumption request read from the queue, a difference between the value of the local copy of the global resource consumption counter value and the global resource consumption counter value at the time of synchronization is determined and global resource consumption is projected based on a difference and a time elapsed since a last synchronization of the local copy of the global resource consumption counter and the actual global resource consumption;

wherein each proxy server is configured to carry out a decision on whether to accept or to reject a new request read from the queue based on:

a provisioned maximum limit for a given resource P,

a local resource consumption counter value L,

a synchronized global resource consumption value G, and

an amount of resources to be consumed by the request R;

such that, on every new request, at time t x , the request is accepted if

P ( G tx ) +R≤P

where

P

(

G

tx

)

=

G

ts

-

L

ts

t

s

-

t

s

-

1

(

t

x

-

t

s

)

+

L

tx

,

wherein

P(G tx ) is the projection of global resource consumption G at time t x , which is the time when a new request arrives, t s and t s-1 are the times where synchronization between the global resource consumption G and its local copy L, occurred prior to t x , and wherein G t and L t are the global and local resource consumption, respectively, at time t.

2. The system of claim 1 , wherein the distributed environment is a Software as a Service (SaaS) environment.

3. The system of claim 1 , wherein the system is configured as a network.

4. The system of claim 1 , wherein each of the server instances is a computer device.

5. The system of claim 4 , wherein each of the proxy servers is a computer device.

6. The system of claim 1 , wherein each of the proxy servers is a computer device.

7. The system of claim 1 , wherein the global resource consumption counter is a computer device that is communicatively connected to the server instances and/or the proxy servers.

8. The system of claim 1 , wherein the system is a communication system.

9. The system of claim 1 , wherein a load balancer is configured to distribute requests issued by at least one client application to the multitude of server instances.

10. A communication apparatus comprising:

a multitude of proxy servers, each of the proxy servers having a processor connected to a non-transitory computer readable medium, each proxy server also comprising

a receiver configured to receive resource consumption requests issued from a client application,

a queue for collecting resource consumption requests that have been locally accepted by the respective proxy server,

a local resource consumption counter, said local resource consumption counter being updated every time a resource consumption request is accepted by the proxy server;

each proxy server configured to synchronize a global resource consumption counter representing an overall resource consumption of a multitude of server instances at a given time with the local resource consumption counter such that synchronizing the local resource consumption counter with the global resource consumption counter occurs by adding an amount of resource consumption of at least one of the requests received by the receiver to update the local resource consumption counter;

each proxy server configured so that, for each resource consumption request read from the queue, a difference between the value of the local copy of the global resource consumption counter value and the global resource consumption counter value at the time of synchronization is determined and global resource consumption is projected based on a difference and a time elapsed since a last synchronization of the local copy of the global resource consumption counter and the actual global resource consumption;

wherein each proxy server is configured to carry out a decision on whether to accept or to reject a new request read from the queue based on:

a provisioned maximum limit for a given resource P,

a local resource consumption counter value L,

a synchronized global resource consumption value G, and

an amount of resources to be consumed by the request R;

such that, on every new request, at time t x , the request is accepted if

P ( G tx ) +R≤P

where

P

(

G

tx

)

=

G

ts

-

L

ts

t

s

-

t

s

-

1

(

t

x

-

t

s

)

+

L

tx

,

wherein

P(G tx ) is the projection of global resource consumption G at time t x , which is the time when a new request arrives, t s and t s-1 are the times where synchronization between the global resource consumption G and its local copy L, occurred prior to t x , and wherein G t and L t are the global and local resource consumption, respectively, at time t.

11. The communication apparatus of claim 10 , wherein the distributed environment is a Software as a Service (SaaS) environment.

12. The communication apparatus of claim 10 , wherein the system is configured as a network.

13. The communication apparatus of claim 10 wherein each of the proxy servers is a computer device.

14. The communication apparatus of claim 10 , comprising the server instances, each of the service instances being a computer device.

15. The communication apparatus of claim 10 , comprising the global resource consumption counter, the global resource consumption counter being a computer device that is communicatively connected to the proxy servers.

16. A computer-implemented method for real-time resource consumption control in a distributed computing environment, the environment comprising:

a multitude of proxy servers, each of the proxy servers having a processor connected to a non-transitory computer readable medium, each proxy server also comprising

a receiver configured to receive receiving resource consumption requests issued from a client application,

a queue for collecting resource consumption requests that have been locally accepted by the respective proxy server,

a local resource consumption counter, representing the global resource consumption as seen by the respective proxy server, said local resource consumption counter being updated every time a resource consumption request is accepted, and the method comprising:

a) reading, from the queue, the amount of resource consumption of a request received by the receiver that is accepted;

b) synchronizing the local resource consumption counter with a global resource consumption counter by adding the amount read in step a) to the global resource consumption counter;

c) updating the local resource consumption counter with a local copy of the global resource consumption counter value from step b);

d) on every new request read from the queue, determining the difference between the value of the local copy of the global resource consumption counter value and the global resource consumption counter value at the time of synchronization; and

e) projecting the global resource consumption based on the difference determined in step d) and the time elapsed since the last synchronization of the local copy of the global resource consumption counter and the actual global resource consumption at the time of each synchronization step; and

f) determining whether to accept or to reject each new request based on:

a provisioned maximum limit for a given resource P,

a local resource consumption counter value L,

a synchronized global resource consumption value G, and

an amount of resources to be consumed by the request R;

such that, on every new request, at time t x , the new request is accepted if

P ( G tx ) +R≤P

where:

P

(

G

tx

)

=

G

ts

-

L

ts

t

s

-

t

s

-

1

(

t

x

-

t

s

)

+

L

tx

,

P(G tx ) being the projection of global resource consumption G at time t x , which is the time when a new request arrives, t s and t s-1 are the times where synchronization between the global resource consumption G and its local copy L, occurred prior to t x , and wherein G t and L t are the global and local resource consumption, respectively, at time t.

17. The method of claim 16 , wherein the global resource consumption counter is a counter representing an overall resource consumption of a multitude of server instances at a given time.

18. The method of claim 17 , comprising:

at least one of the multitude of server instances receiving at least one request for a shared resource issued by the client application.

19. The method of claim 18 , comprising:

at least one of the multitude of server instances informing one of the proxy servers of the at least one request for the shared resource issued by the client application.

20. The method of claim 16 , wherein each of the proxy servers is a computer device.

Assignments (10)
RELEASE OF SECURITY INTEREST Recorded Jun 24, 2025
From: WILMINGTON SAVINGS FUND SOCIETY, FSB
To: MITEL (DELAWARE), INC.; MITEL COMMUNICATIONS, INC.; MITEL NETWORKS, INC.; MITEL NETWORKS CORPORATION
Reel/Frame 071712/0821 →
NOTICE OF SUCCCESSION OF AGENCY - PL Recorded Jan 14, 2025
From: UBS AG, STAMFORD BRANCH, AS LEGAL SUCCESSOR TO CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: WILMINGTON SAVINGS FUND SOCIETY, FSB
Reel/Frame 069895/0755 →
NOTICE OF SUCCCESSION OF AGENCY - 3L Recorded Jan 14, 2025
From: UBS AG, STAMFORD BRANCH, AS LEGAL SUCCESSOR TO CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: WILMINGTON SAVINGS FUND SOCIETY, FSB
Reel/Frame 070006/0268 →
NOTICE OF SUCCCESSION OF AGENCY - 2L Recorded Jan 14, 2025
From: UBS AG, STAMFORD BRANCH, AS LEGAL SUCCESSOR TO CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: WILMINGTON SAVINGS FUND SOCIETY, FSB
Reel/Frame 069896/0001 →
CHANGE OF NAME Recorded Oct 24, 2024
From: UNIFY PATENTE GMBH & CO. KG
To: UNIFY BETEILIGUNGSVERWALTUNG GMBH & CO. KG
Reel/Frame 069242/0312 →
SECURITY INTEREST Recorded Jan 5, 2024
From: UNIFY PATENTE GMBH & CO. KG
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 066197/0333 →
SECURITY INTEREST Recorded Jan 5, 2024
From: UNIFY PATENTE GMBH & CO. KG
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 066197/0299 →
SECURITY INTEREST Recorded Jan 5, 2024
From: UNIFY PATENTE GMBH & CO. KG
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 066197/0073 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 18, 2023
From: UNIFY GMBH & CO. KG
To: UNIFY PATENTE GMBH & CO. KG
Reel/Frame 065627/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2019
From: BALAFOUTIS, ELIAS
To: UNIFY GMBH & CO. KG
Reel/Frame 049180/0451 →
Priority Claims (1)
DE 10 2014 016 648 · Nov 11, 2014 · national
Continuity (2)
Continuation 15525855
Related Publication 20190273806A1 · Sep 5, 2019