Isolating resources for utilization by tenants executing in multi-tenant software containers

US9703611B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9703611-B1
Application numberUS-201414222564-A
CountryUS
Kind codeB1
Filing dateMar 21, 2014
Priority dateMar 21, 2014
Publication dateJul 11, 2017
Grant dateJul 11, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Technologies are described herein for isolating tenants executing in a multi-tenant software container. Mechanisms for resource isolation allow tenants executing in a multi-tenant software container to be isolated in order to prevent resource starvation by one or more of the tenants. Mechanisms for dependency isolation may be utilized to prevent one tenant executing in a multi-tenant software container from using another tenant in the same container in a manner that requires co-tenancy. Mechanisms for security isolation may be utilized to prevent one tenant in a multi-tenant software container from accessing protected data or functionality of another tenant. Mechanisms for fault isolation may be utilized to prevent tenants in a multi-tenant software container from causing faults or other types of errors that affect other tenants executing in the same software container.

First claim

Opening claim text (preview).

What is claimed is: 1. A non-transitory computer-readable storage medium having computer-executable instructions stored thereupon which, when executed by a computer, cause the computer to: monitor utilization of one or more resources of the computer by a plurality of tenants executing in a multi-tenant software container, the multi-tenant software container executing in a process on a virtual machine hosted by the computer, and the plurality of tenants executing as threads in the process, the monitoring based on one or more of bytecode weaving performed at a virtual machine level, interception performed at an operating system level, or shadow environments; determine, based upon the monitoring, that at least one tenant of the plurality of tenants is utilizing the one or more resources in excess of a specified threshold, wherein at least one of the resources comprises file descriptors, and wherein the determining comprises: maintaining a counter for individual ones of the plurality of tenants, the counter indicating a number of file descriptors created by a corresponding tenant, and determining that the counter for the at least one tenant exceeds a specified file descriptor threshold; and in response to determining that the at least one tenant is utilizing the one or more resources in excess of the specified threshold, perform one or more actions with regard to the at least one tenant that is utilizing the one or more resources in excess of the specified threshold. 2. The non-transitory computer-readable storage medium of claim 1 , wherein the one or more resources comprise one or more of disk space, CPU cycles, system memory, permanent generation data, young generation data, old generation data, disk I/O operations, disk bandwidth, network I/O operations, network bandwidth, load balancer connections, file descriptors, processes, or execution threads. 3. The non-transitory computer-readable storage medium of claim 1 , wherein the one or more actions comprise one or more of denying a resource request from the at least one tenant, redirecting a resource request from the at least one tenant to another multi-tenant software container, evicting the at least one tenant from the multi-tenant software container, moving the at least one tenant to another multi-tenant software container, reducing CPU cycles allocated to the at least one tenant, pausing execution of the at least one tenant, or throttling execution of the at least one tenant. 4. The non-transitory computer-readable storage medium of claim 1 , wherein the monitoring is further based on one or more of memory dumps or tracing tools. 5. The non-transitory computer-readable storage medium of claim 1 , having further computer-executable instructions stored thereupon which, when executed by the computer, cause the computer to execute the plurality of tenants in respective individual shadow environments in order to monitor the utilization of the one or more resources by individual ones of the plurality of tenants. 6. A system for isolating one or more resources for utilization by a plurality of tenants executing in a multi-tenant software container, the system comprising: a processor; and a computer-readable storage medium having computer-executable instructions stored thereupon which, when executed by the processor, cause the system to monitor utilization of the one or more resources of the system by the plurality of tenants executing in the multi-tenant software container, the multi-tenant software container executing in a process on a virtual machine hosted by the system, and the plurality of tenants executing as threads of the process, the monitoring based on one or more of bytecode weaving performed at a virtual machine level, interception performed at an operating system level, or shadow environments, determine, based upon the monitoring, that at least one tenant of the plurality of tenants utilizes the one or more resources in excess of a specified threshold, wherein at least one of the resources comprises file descriptors, and wherein the determining comprises: maintaining a counter for individual ones of the plurality of tenants, the counter indicating a number of file descriptors created by a corresponding tenant, and determining that the counter for the at least one tenant exceeds a specified file descriptor threshold; and in response to determining that the at least one tenant utilizes the one or more resources in excess of the specified threshold, perform one or more actions with respect to the at least one tenant of the plurality of tenants that utilizes the one or more resources in excess of the specified threshold. 7. The system of claim 6 , wherein at least one of the resources comprises execution threads, and wherein the computer-readable storage medium has further computer-executable instructions stored thereupon which, when executed by the processor, cause the system to maintain a counter for individual ones of the plurality of tenants, the counter indicating a number of execution threads created by a corresponding tenant, and utilize the counter to prevent the corresponding tenant from creating execution threads in excess of a specified execution thread count. 8. The system of claim 7 , wherein at least one counter is generated using one or more of bytecode weaving, interception, or tracing. 9. The system of claim 6 , wherein at least one of the resources comprises execution threads, and wherein the computer-readable storage medium has further computer-executable instructions stored thereupon which, when executed by the processor, cause the system to maintain data identifying execution threads created by individual ones of the plurality of tenants, and utilize the data to reap execution threads created by a corresponding tenant if the corresponding tenant is removed from the multi-tenant software container. 10. The system of claim 6 , wherein the computer-readable storage medium has further computer-executable instructions stored thereupon which, when executed by the processor, cause the system to associate a first directory on a file system with a tenant of the plurality of tenants, and prevent the tenant from writing to a second directory on the file system that is not associated with the tenant. 11. The system of claim 6 , wherein the computer-readable storage medium has further computer-executable instructions stored thereupon which, when executed by the processor, cause the system to associate a disk quota with a tenant of the plurality of tenants, and prevent the tenant from writing an amount of data to a file system in excess of the disk quota associated with the tenant. 12. The system of claim 6 , wherein at least one of the resources comprises memory, and wherein the computer-readable storage medium has further computer-executable instructions stored thereupon which, when executed by the processor, cause the system to maintain a counter for individual ones of the plurality of tenants, the counter indicating an amount of memory utilized by a corresponding tenant, and utilize the counter to prevent the corresponding tenant from utilizing memory in excess of a specified memory threshold. 13. The system of claim 12 , wherein at least one counter is generated by bytecode weaving a virtual machine, and wherein the memory comprises one or more of permanent generation data, young generation data, or old generation data. 14. The system of claim 6 , wherein the computer-readable storage medium has further computer-executable instructions stored thereupon which, when executed by the processor, cause the system to execute individual ones of the pluralit

Assignees

Inventors

Classifications

  • G06F9/5077Primary

    Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455) · CPC title

  • G06F9/5083Primary

    Techniques for rebalancing the load in a distributed system · CPC title

  • Grid computing · CPC title

  • in a virtual computing platform, e.g. logically partitioned systems · CPC title

  • the resource being a machine, e.g. CPUs, Servers, Terminals · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9703611B1 cover?
Technologies are described herein for isolating tenants executing in a multi-tenant software container. Mechanisms for resource isolation allow tenants executing in a multi-tenant software container to be isolated in order to prevent resource starvation by one or more of the tenants. Mechanisms for dependency isolation may be utilized to prevent one tenant executing in a multi-tenant software c…
Who is the assignee on this patent?
Amazon Tech Inc
What technology area does this patent fall under?
Primary CPC classification G06F9/5077. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jul 11 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).