# US 11,442,793 B1 · Fully dynamic virtual proxies for data protection

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,442,793 B1
- Document ID: US11442793B1
- Status: Granted
- Kind: B1
- Application number: 16/579,497
- Filed: 2019-09-23
- Granted: 2022-09-13
- Earliest claimed: 2019-09-23
- Assignees: EMC IP Holding Company LLC
- Applicants: EMC IP Holding Company LLC
- Inventors: Gururaj Kulkarni; Scott Quesnelle
- Web page: https://patentgrep.com/patent/US11442793B1

## CPC

- G06F 9/505: {considering the load}
- G06F 9/5083: {Techniques for rebalancing the load in a distributed system}
- G06F 9/5077: {Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455)}
- G06F 11/1464: {for networked environments}
- G06F 11/301: {where the computing system is a virtual computing platform, e.g. logically partitioned systems (virtual machines G06F9/45533; logical partitioning of resources G06F9/5077)}
- G06F 11/3433: {for load management (allocation of a server based on load conditions G06F9/505; load rebalancing G06F9/5083; redistributing the load in a network by a load balancer H04L67/1029)}
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 2009/45562: {Creating, deleting, cloning virtual machine instances}
- G06F 2201/81: Threshold
- G06F 2201/815: Virtual
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Described is a system for utilizing fully dynamic proxies for data flow during data protection. The system determines threshold parameters for each respective virtual proxy in a plurality of virtual proxies. The system receives virtual machine protection data of each respective virtual proxy. The system detects a current data protection workload experienced by each virtual proxy operating according to its respective threshold parameters and virtual machine protection data. The system identifies at least one under-utilized virtual proxy and at least one over-utilized virtual proxy based on the current data protection workload detected on each virtual proxy. The system causes the at least one under-utilized virtual proxy to receive upcoming backup data flow before the at least one over-utilized virtual proxy.

## Claims

### Claim 1

A system comprising:
one or more processors; and
a non-transitory computer readable medium storing a plurality of instructions, which when executed, cause the one or more processors to:
determine one or more threshold parameters for each virtual proxy in a plurality of virtual proxies, each virtual proxy providing data protection services for a plurality of virtual machines;
receive virtual machine protection data of each respective virtual proxy indicating current utilization of data protection services of each respective virtual proxy by the plurality of virtual machines associated with each respective virtual proxy;
identify, based on the virtual machine protection data received for each virtual proxy, at least one under-utilized virtual proxy and at least one over-utilized virtual proxy, the at least one under-utilized virtual proxy having virtual machine protection data that is less than the one or more threshold parameters for the at least one under-utilized virtual proxy; and
cause the at least one under-utilized virtual proxy to receive upcoming backup data flow before the at least one over-utilized virtual proxy.

### Claim 2 (depends on 1)

The system of claim 1, wherein the virtual machine protection data comprises current proxy resource utilization data and a number of virtual machines currently being protected by the respective virtual proxy.

### Claim 3 (depends on 2)

The system of claim 2, wherein the threshold parameters comprise a threshold measurement of proxy resource utilization data and a maximum allowed number of protected virtual machines.

### Claim 4 (depends on 1)

The system of claim 1, wherein identifying the at least one under-utilized virtual proxy and the at least one over-utilized virtual proxy comprises:
determining all respective virtual proxies are over-utilized;
instantiating a new virtual proxy to be added to the plurality of virtual proxies in response to the determining all respective virtual proxies are over-utilized; and
identifying the new virtual proxy as the under-utilized virtual proxy.

### Claim 5 (depends on 4)

The system of claim 4, wherein causing the at least one under-utilized virtual proxy to receive upcoming data flow before the at least one over-utilized virtual proxy comprises:
identifying incoming backup data flow from one or more virtual machines protected by the plurality of virtual proxies; and
routing the incoming backup data flow to the new virtual proxy.

### Claim 6 (depends on 1)

The system of claim 1, wherein identifying the at least one under-utilized virtual proxy and the at least one over-utilized virtual proxy comprises:
identifying, as an under-utilized virtual proxy, an idle virtual proxy that has not received any backup data flow during a pre-determined workload duration; and
deleting the idle virtual proxy from the plurality of virtual proxies.

### Claim 7 (depends on 6)

The system of claim 6, wherein identifying, as an under-utilized virtual proxy, an idle virtual proxy further comprises:
determining the idle virtual proxy is not scheduled to receive any incoming backup data flow during a pre-determined upcoming interval.

### Claim 8

A method comprising:
determining one or more threshold parameters for each virtual proxy in a plurality of virtual proxies, each virtual proxy providing data protection services for a plurality of virtual machines;
receiving virtual machine protection data of each respective virtual proxy indicating current utilization of data protection services of each respective virtual proxy by the plurality of virtual machines associated with each respective virtual proxy;
identifying, based on the virtual machine protection data received for each virtual proxy, at least one under-utilized virtual proxy and at least one over-utilized virtual proxy, the at least one under-utilized virtual proxy having virtual machine protection data that is less than the one or more threshold parameters for the at least one under-utilized virtual proxy; and
causing the at least one under-utilized virtual proxy to receive upcoming backup data flow before the at least one over-utilized virtual proxy.

### Claim 9 (depends on 8)

The method of claim 8, wherein the virtual machine protection data comprises current proxy resource utilization data and a number of virtual machines currently being protected by the respective virtual proxy.

### Claim 10 (depends on 9)

The method of claim 9, wherein the threshold parameters comprise a threshold measurement of proxy resource utilization data and a maximum allowed number of protected virtual machines.

### Claim 11 (depends on 8)

The method of claim 8, wherein identifying at least one under-utilized virtual proxy and at least one over-utilized virtual proxy comprises:
determining all respective virtual proxies are over-utilized;
instantiating a new virtual proxy to be added to the plurality of virtual proxies in response to the determining all respective virtual proxies are over-utilized; and
identifying the new virtual proxy as the under-utilized virtual proxy.

### Claim 12 (depends on 11)

The method of claim 11, wherein causing the at least one under-utilized virtual proxy to receive upcoming data flow before the at least one over-utilized virtual proxy comprises:
identifying incoming backup data flow from one or more virtual machines protected by the plurality of virtual proxies; and
routing the incoming backup data flow to the new virtual proxy.

### Claim 13 (depends on 8)

The method of claim 8, wherein identifying at least one under-utilized virtual proxy and at least one over-utilized virtual proxy comprises:
identifying, as an under-utilized virtual proxy, an idle virtual proxy that has not received any backup data flow during a pre-determined workload duration; and
deleting the idle virtual proxy from the plurality of virtual proxies.

### Claim 14 (depends on 13)

The method of claim 13, wherein identifying, as an under-utilized virtual proxy, an idle virtual proxy further comprises:
determining the idle virtual proxy is not scheduled to receive any incoming backup data flow during a pre-determined upcoming interval.

### Claim 15

A computer program product comprising a non-transitory computer-readable medium having a computer-readable program code embodied therein to be executed by one or more processors, the program code including instructions to:
determine one or more threshold parameters for each virtual proxy in a plurality of virtual proxies, each virtual proxy providing data protection services for a plurality of virtual machines;
receive virtual machine protection data of each respective virtual proxy indicating current utilization of data protection services of each respective virtual proxy by the plurality of virtual machines associated with each respective virtual proxy;
identify, based on the virtual machine protection data received for each virtual proxy, at least one under-utilized virtual proxy and at least one over-utilized virtual proxy, the at least one under-utilized virtual proxy having virtual machine protection data that is less than the one or more threshold parameters for the at least one under-utilized virtual proxy; and
cause the at least one under-utilized virtual proxy to receive upcoming backup data flow before the at least one over-utilized virtual proxy.

### Claim 16 (depends on 15)

The computer program product of claim 15, wherein the virtual machine protection data comprises current proxy resource utilization data and a number of virtual machines currently being protected by the respective virtual proxy.

### Claim 17 (depends on 15)

The computer program product of claim 15, wherein the threshold parameters comprise a threshold measurement of proxy resource utilization data and a maximum allowed number of protected virtual machines.

### Claim 18 (depends on 15)

The computer program product of claim 15,
wherein identifying at least one under-utilized virtual proxy and at least one over-utilized virtual proxy comprises:
determining all respective virtual proxies are over-utilized;
instantiating a new virtual proxy to be added to the plurality of virtual proxies in response to the determining all respective virtual proxies are over-utilized; and
identifying the new virtual proxy as the under-utilized virtual proxy.

### Claim 19 (depends on 15)

The computer program product of claim 15, wherein causing the at least one under-utilized virtual proxy to receive upcoming data flow before the at least one over-utilized virtual proxy comprises:
identifying incoming backup data flow from one or more virtual machines protected by the plurality of virtual proxies; and
routing the incoming backup data flow to the new virtual proxy.

### Claim 20 (depends on 15)

The computer program product of claim 15, wherein identifying at least one under-utilized virtual proxy and at least one over-utilized virtual proxy comprises:
identifying, as an under-utilized virtual proxy, an idle virtual proxy that has not received any backup data flow during a pre-determined workload duration; and
deleting the idle virtual proxy from the plurality of virtual proxies.

### Claim 21 (depends on 20)

The computer program product of claim 20, wherein identifying, as an under-utilized virtual proxy, an idle virtual proxy further comprises:
determining the idle virtual proxy is not scheduled to receive any incoming backup data flow during a pre-determined upcoming interval.
