# US 2020/0401632 A1 · Extensible and elastic data management services engine external to a storage domain

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

- Number: US 2020/0401632 A1
- Document ID: US20200401632A1
- Status: Published application
- Kind: A1
- Application number: 17/013,712
- Filed: 2020-09-07
- Published: 2020-12-24
- Earliest claimed: 2015-07-31
- Assignees: NetApp, Inc.
- Applicants: NetApp Inc.
- Inventors: Deepak Raghu Kenchammana-Hosekote; Shiva Chaitanya; Saeed Ghanbari; Barry Patrick Benight; David Anthony Slik
- Web page: https://patentgrep.com/patent/US20200401632A1

## CPC

- G06F 16/93: Document management systems
- G06F 16/10: File systems; File servers
- G06F 16/20: of structured data, e.g. relational data
- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- H04L 67/142: Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
- H04L 67/63: Routing a service request depending on the request content or context
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A data management services architecture includes architectural components that run in both a storage and compute domains. The architectural components redirect storage requests from the storage domain to the compute domain, manage resources allocated from the compute domain, ensure compliance with a policy that governs resource consumption, deploy program code for data management services, dispatch service requests to deployed services, and monitor deployed services. The architectural components also include a service map to locate program code for data management services, and service instance information for monitoring deployed services and dispatching requests to deployed services. Since deployed services can be stateless or stateful, the services architecture also includes state data for the stateful services, with supporting resources that can expand or contract based on policy and/or service demand. The architectural components also include containers for the deployed services.

## Claims

### Claim 1

A method comprising:
identifying a message type of an operation targeting a destination;
evaluating the message type against a set of message types that are not to be routed to data management services;
in response to the to the message type occurring within the set of message types, routing the operation to the destination and refraining from redirecting the operation to the data management services for processing; and
in response to the message type not occurring within the set of message types, redirecting the operation to a data management service.

### Claim 2 (depends on 1)

The method of claim 1, comprising:
in response to suspending service availability of the data management services, refraining from redirecting operations to the data management services.

### Claim 3 (depends on 1)

The method of claim 1, comprising:
in response to determining that a plurality of data management services can process the operation, selecting the data management service to process the operation based upon the data management service satisfying a criterion for processing the operation.

### Claim 4 (depends on 3)

The method of claim 3, wherein the criterion corresponds to a capacity of the data management service for processing the operation.

### Claim 5 (depends on 3)

The method of claim 3, wherein the criterion corresponds to quality of service level of the operation.

### Claim 6 (depends on 1)

The method of claim 1, wherein the operation specifies a service identifier of the data management service, and the method comprising:
comparing the service identifier to a list of service identifiers of guaranteed services to determine whether the data management service is a guaranteed service, wherein resources are provisioned for the data management service from reserved resources in accordance with service attributes based upon the data management service being the guaranteed service.

### Claim 7 (depends on 1)

The method of claim 1, wherein the operation specifies a service identifier of the data management service, and the method comprising:
comparing the service identifier to a list of service identifiers of guaranteed services to determine whether the data management service is a guaranteed service, wherein a request is submitted to a cluster scheduler for compute resources for the data management service based upon the data management service not being the guaranteed service.

### Claim 8 (depends on 1)

The method of claim 1, comprising:
in response to redirecting the operation to the data management service, updating information indicating a change in consumption corresponding to resources being provisioned for the data management service to process the operation.

### Claim 9 (depends on 1)

The method of claim 1, comprising:
in response to the data management service processing the operation to create a processed operation, routing the processed operation to the destination.

### Claim 10

A non-transitory machine readable medium comprising instructions for performing a method, which when executed by a machine, causes the machine to:
identify a message type of an operation targeting a destination;
evaluate the message type against a set of message types that are not to be routed to data management services;
in response to the to the message type occurring within the set of message types, route the operation to the destination and refraining from redirecting the operation to the data management services for processing; and
in response to the message type not occurring within the set of message types, redirect the operation to a data management service.

### Claim 11 (depends on 10)

The method of claim 10, wherein the instructions cause the machine to:
in response to suspending service availability of the data management services, refrain from redirecting operations to the data management services.

### Claim 12 (depends on 10)

The method of claim 10, wherein the instructions cause the machine to:
in response to determining that a plurality of data management services can process the operation, select the data management service to process the operation based upon the data management service satisfying a criterion for processing the operation.

### Claim 13 (depends on 12)

The method of claim 12, wherein the criterion corresponds to a capacity of the data management service for processing the operation.

### Claim 14 (depends on 12)

The method of claim 12, wherein the criterion corresponds to quality of service level of the operation.

### Claim 15 (depends on 10)

The method of claim 10, wherein the operation specifies a service identifier of the data management service, and wherein the instructions cause the machine to:
compare the service identifier to a list of service identifiers of guaranteed services to determine whether the data management service is a guaranteed service, wherein resources are provisioned for the data management service from reserved resources in accordance with service attributes based upon the data management service being the guaranteed service.

### Claim 16

A computing device comprising:
a memory comprising machine executable code for performing a method; and
a processor coupled to the memory, the processor configured to execute the machine executable code to cause the processor to:
identify a message type of an operation targeting a destination;
evaluate the message type against a set of message types that are not to be routed to data management services;
in response to the to the message type occurring within the set of message types, route the operation to the destination and refraining from redirecting the operation to the data management services for processing; and
in response to the message type not occurring within the set of message types, redirect the operation to a data management service.

### Claim 17 (depends on 16)

The computing device of claim 16, wherein the machine executable code causes the processor to:
in response to redirecting the operation to the data management service, update information indicating a change in consumption corresponding to resources being provisioned for the data management service to process the operation.

### Claim 18 (depends on 16)

The computing device of claim 16, wherein the machine executable code causes the processor to:
in response to the data management service processing the operation to create a processed operation, route the processed operation to the destination.

### Claim 19 (depends on 16)

The computing device of claim 16, wherein the machine executable code causes the processor to:
in response to suspending service availability of the data management services, refrain from redirecting operations to the data management services.

### Claim 20 (depends on 16)

The computing device of claim 16, wherein the machine executable code causes the processor to:
in response to determining that a plurality of data management services can process the operation, select the data management service to process the operation based upon the data management service satisfying a criterion for processing the operation.
