Patentable/Patents/US-10778806
US-10778806

Shard sandboxing

PublishedSeptember 15, 2020
Assigneenot available in USPTO data we have
Inventorsnot available in USPTO data we have
Technical Abstract

The disclosure is directed to sandboxing data shards in a host server. A shard can store a subset of data associated with an application, and provide read and/or write services to various application services. In a multi-tenant architecture, different application services can share common hardware of a multi-tenant system to improve hardware utilization and efficiency. For example, shards associated with various application services are hosted by a common host server. Accessing of a shard, e.g., by an application service, consumes resources of the host server. A bug or a spike in the usage of the host server by one application service can impact other application services with which the host server is shared. To reduce or eliminate this problem, the shards will be sandboxed in the host server, which can include reserving resources, e.g., computing, networking and/or storage resources, for each of the shards.

Patent Claims
20 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A computer-implemented method, comprising: monitoring, at a server computer and for a specified period, resource utilization of a shard hosted at a host server computer, the shard storing data associated with an application service executing at a client computer, the resource utilization indicative of consumption of a specified resource associated with the host server computer; determining, at the server computer, an actual consumption of the specified resource by the shard based on the monitoring; determining, at the server computer and based on the actual consumption, a throttling limit for the shard for the specified resource, the throttling limit being a maximum amount of the specified resource that can be consumed by the shard; setting, at the server computer, the throttling limit for the specified resource for the shard by: receiving, at the server computer and from the application service, a resource utilization indicator of the shard, the resource utilization indicator indicative of an amount of the specified resource to be consumed by the shard; determining, at the server computer and based on the resource utilization indicator, an initial throttling limit for the specified resource; and adjusting, at the server computer, the initial throttling limit based on the actual consumption to generate the throttling limit; and rejecting, at the server computer, one or more access requests received from the application service for the shard in an event serving the one or more access requests causes the resource utilization to exceed the throttling limit.

2

2. The computer-implemented method of claim 1 further comprising: feeding, by the server computer, throttling information to the client computer, the throttling information indicative of a first number of access requests throttled by the server computer.

3

3. The computer-implemented method of claim 2 further comprising: sampling, by the client computer and based on the throttling information, multiple access requests to be sent to the server computer to reduce a number of access requests throttled by the server computer from the first number of access requests to a second number of access requests.

4

4. The computer-implemented method of claim 3 , wherein the sampling includes: throttling, by the client computer, a portion of the first number of access requests, wherein the portion is higher than the second number of access requests to be throttled by the server computer; and sending, by the client computer, a total number of access requests not exceeding the throttling limit by the second number of access requests to the server computer.

5

5. The computer-implemented method of claim 1 , wherein the shard is disposed within a plurality of shards.

6

6. The computer-implemented method of claim 1 , wherein setting the throttling limit includes: determining that the actual consumption has changed; and adjusting the throttling limit based on the actual consumption that has changed to generate a revised throttling limit.

7

7. The computer-implemented method of claim 6 , wherein determining that the actual consumption has changed is performed based on a trigger condition, the trigger condition including at least one of an expiry of a time interval, the actual consumption exceeding a specified threshold, or resource consumption of one or more resources at the host server computer falls out of a specified range.

8

8. The computer-implemented method of claim 1 , wherein determining the throttling limit includes: determining a value that is above the actual consumption by a specified percentage; and setting the value as the throttling limit.

9

9. The computer-implemented method of claim 1 , wherein the specified resource is one of multiple resources associated with the host server computer and/or the shard, and wherein setting the throttling limit includes setting different throttling limits for different resources.

10

10. The computer-implemented method of claim 1 , wherein the shard is one of multiple shards, and wherein setting the throttling limit for the specified resource includes setting different throttling limits for different shards.

11

11. The computer-implemented method of claim 1 , wherein the actual consumption of the specified resource is determined as a maximum of the actual consumption over the specified period excluding any anomalies in the actual consumption.

12

12. The computer-implemented method of claim 1 , wherein determining the actual consumption of the specified resource includes: determining a maximum of the actual consumption in a portion of the specified period; excluding any anomalies in the actual consumption in determining the maximum; and extrapolating the maximum to a remaining of the specified period to determine the actual consumption.

13

13. The computer-implemented method of claim 1 further comprising: sending a notification to an entity associated with the application service in an event the one or more access requests is rejected.

14

14. The computer-implemented method of claim 1 further comprising: determining, at the server computer, a set of constraints for a set of resources associated with the host server computer, wherein the set of constraints is independent of the actual consumption of the set of resources by the application service; and determining, at the server computer, a number of shards to be hosted by the host server computer based on the set of constraints.

15

15. The computer-implemented method of claim 14 further comprising: receiving, at the server computer, multiple data access requests for the number of shards; and forwarding, by the server computer, the multiple data access requests to the host server computer without throttling any of the multiple data access requests.

16

16. The computer-implemented method of claim 1 further comprising: receiving a resource reservation requirement for the shard, the resource reservation requirement indicative of a minimum amount of the specified resource to be allocated for the shard; and setting the throttling limit to be not less than the resource reservation requirement.

17

17. A non-transitory computer-readable storage medium storing computer-readable instructions that, when executed by a physical processor of a server computer, cause the server computer to perform a method comprising: monitoring, for a specified period, resource utilization of a shard hosted at a host server computer, the shard storing data associated with an application service executing at a client computer, the resource utilization indicative of consumption of a specified resource associated with the host server computer; determining an actual consumption of the specified resource by the shard based on the monitoring; determining, based on the actual consumption, a throttling limit for the shard for the specified resource, the throttling limit being a maximum amount of the specified resource that can be consumed by the shard; setting the throttling limit for the specified resource for the shard by: receiving a resource utilization indicator of the shard, the resource utilization indicator indicative of an amount of the specified resource to be consumed by the shard; determining, based on the resource utilization indicator, an initial throttling limit for the specified resource; and adjusting the initial throttling limit based on the actual consumption to generate the throttling limit; and rejecting one or more access requests received from the application service for the shard in an event serving the one or more access requests causes the resource utilization to exceed the throttling limit.

18

18. The non-transitory computer-readable storage medium of claim 17 , wherein the instructions further cause the server computer to perform feeding throttling information to the client computer, the throttling information indicative of a first number of access requests throttled by the server computer.

19

19. The non-transitory computer-readable storage medium of claim 18 , wherein the instructions further cause the client computer to perform sampling, based on the throttling information, multiple access requests to be sent to the server computer to reduce a number of access requests throttled by the server computer from the first number of access requests to a second number of access requests.

20

20. A system, comprising: a physical computing processor of a server computer; at least one physical memory storing computer-executable instructions that, when executed by the physical computing processor, cause the server computer to perform a method comprising: monitoring, for a specified period, resource utilization of a shard hosted at a host server computer, the shard storing data associated with an application service executing at a client computer, the resource utilization indicative of consumption of a specified resource associated with the host server computer; determining an actual consumption of the specified resource by the shard based on the monitoring; determining, based on the actual consumption, a throttling limit for the shard for the specified resource, the throttling limit being a maximum amount of the specified resource that can be consumed by the shard; setting the throttling limit for the specified resource for the shard by: receiving a resource utilization indicator of the shard, the resource utilization indicator indicative of an amount of the specified resource to be consumed by the shard; determining, based on the resource utilization indicator, an initial throttling limit for the specified resource; and adjusting the initial throttling limit based on the actual consumption to generate the throttling limit; and rejecting one or more access requests received from the application service for the shard in an event serving the one or more access requests causes the resource utilization to exceed the throttling limit.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

October 10, 2017

Publication Date

September 15, 2020

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “Shard sandboxing” (US-10778806). https://patentable.app/patents/US-10778806

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.