IP Library › Granted Patent US 10,200,493
Granted Patent B2
US 10,200,493 · App. 13/274,355 · Granted Feb 5, 2019

High-density multi-tenant distributed cache as a service

Inventors: Perraju Bendapudi (Hyderabad, IN); Hari Krishnan S. (Hyderabad, IN); Jithendra K. Veeramachaneni (Hyderabad, IN); Jagan M. Peri (Hyderabad, IN); Jatin Kakkar (Hyderabad, IN); Amit Kumar Yadav (New Delhi, IN)
Assignee: Microsoft Technology Licensing, LLC
H04L67/2842G06F21/335H04L63/0807H04L67/1002G06F2212/314H04L41/5096H04L67/288
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,200,493
App. No.
13/274,355
Granted
Feb 5, 2019
Kind
B2
Abstract

A multi-tenant, elastically scalable cache as a service is disclosed. Embodiments of the cache service eliminate the need for applications to manage their own cache tier. The multi-tenant cache service is implemented by maintaining/creating multiple named caches in a cache cluster and mapping each tenant's cache to a named cache in the cluster. Strict quotas are enforced on cache sizes This allows caches with different replication attributes to co-exist on the same cache server, allows migration of a cache from one cluster to another for load balancing purposes, and allows a cache to inflate/deflate to meet business needs. A network load balancer is used to route cache items to servers.

Claims (48)

1. A computer-implemented method for provisioning a multi-tenant cache service, the method comprising:

receiving, at a computer system, a request to create a new multi-tenant cache for an application, wherein the request indicates a requested cache size;

identifying, by the computer system, a cache cluster from a plurality of cache clusters to host the new multi-tenant cache, the plurality of cache clusters providing a distributed cache service, wherein the cache cluster comprises a plurality of gateway nodes and a plurality of cache servers;

in response to the request to create the new multi-tenant cache, reserving, by the computer system, space corresponding to the requested cache size for the new multi-tenant cache on the plurality of cache servers; and

provisioning, by the computer system, the new multi-tenant cache by:

provisioning an access control service endpoint and a security token;

providing, to a client device having the application thereon, the security token and the access control service endpoint, wherein the security token corresponds to a decryption token on a gateway node of the plurality of gateway nodes within the cache cluster, wherein the security token and the access control service endpoint are passed as input parameters to the application; and

providing, in response to the application passing the security token to the gateway node having the decryption token thereon, a ticket that grants access to the reserved space on the cache cluster.

2. The computer-implemented method of claim 1 , further comprising:

identifying, by the computer system, the cache cluster to host the new multi-tenant cache based upon the requested cache size and a user-requested location.

3. The computer-implemented method of claim 1 , further comprising:

provisioning, by the computer system, the security token using an access control service associated with the access control service endpoint.

4. The computer-implemented method of claim 1 , further comprising:

establishing, by the computer system, a per-tenant cache quota based upon the requested cache size.

5. The computer-implemented method of claim 1 , further comprising:

establishing, by the computer system, a tenant bandwidth that identifies a maximum number of transactions or size of transactions for a selected period.

6. The computer-implemented method of claim 1 , wherein the cache cluster comprises a ring network of cache servers, and wherein the plurality of gateway nodes track a location of data within the ring network of cache servers.

7. The computer-implemented method of claim 1 , further comprising:

partitioning data of the reserved space across multiple cache servers of the cache cluster such that each tenant of the new multi-tenant cache receives a uniquely named cache.

8. A computer system, comprising:

a processor; and

a memory coupled to the processor, the memory having program instructions stored thereon that, upon execution by the processor, cause the computer system to:

receive a request to create a new multi-tenant cache for an application, wherein the request indicates a requested cache size;

identify a cache cluster from a plurality of cache clusters to host the new multi-tenant cache, the plurality of cache clusters providing a distributed cache service, wherein the cache cluster comprises a plurality of gateway nodes and a plurality of cache servers;

in response to the request to create the new multi-tenant cache, reserve space corresponding to the requested cache size for the new multi-tenant cache on the plurality of cache servers; and

provision the new multi-tenant cache by:

provisioning an access control service endpoint and a security token;

providing, to a client device having the application thereon, the security token and the access control service endpoint, wherein the security token corresponds to a decryption token on a gateway node of the plurality of gateway nodes within the cache cluster, wherein the security token and the access control service endpoint are passed as input parameters to the application; and

providing, in response to the application passing the security token to the gateway node having the decryption token thereon, a ticket that grants access to the reserved space on the cache cluster.

9. The computer system of claim 8 , wherein the program instructions, upon execution by the processor, further cause the processor to identify the cache cluster to host the new multi-tenant cache based upon the requested cache size and a user-requested location.

10. The computer system of claim 8 , wherein the program instructions, upon execution by the processor, further cause the processor to provision the security token using an access control service associated with the access control service endpoint.

11. The computer system of claim 8 , wherein the program instructions, upon execution by the processor, further cause the processor to establish a per-tenant cache quota based upon the requested cache size.

12. The computer system of claim 8 , wherein the program instructions, upon execution by the processor, further cause the processor to establish a tenant bandwidth that identifies a maximum number of transactions or size of transactions for a selected period.

13. The computer system of claim 8 , wherein the cache cluster comprises a ring network of cache servers, and wherein the plurality of gateway nodes track a location of data within the ring network of cache servers.

14. The computer system of claim 8 , wherein the program instructions, upon execution by the processor, further cause the processor to partition data of the reserved space across multiple cache servers of the cache cluster such that each tenant of the new multi-tenant cache receives a uniquely named cache.

15. A computer-readable media device having program instructions stored thereon that, upon execution by a processor of a computer system, cause the computer system to:

receive a request to create a new multi-tenant cache for an application, wherein the request indicates a requested cache size;

identify a cache cluster from a plurality of cache clusters to host the new multi-tenant cache, the plurality of cache clusters providing a distributed cache service, wherein the cache cluster comprises a plurality of gateway nodes and a plurality of cache servers;

in response to the request to create the new multi-tenant cache, reserve space corresponding to the requested cache size for the new multi-tenant cache on the plurality of cache servers; and

provision the new multi-tenant cache by:

provisioning an access control service endpoint and a security token;

providing, to a client device having the application thereon, the security token and the access control service endpoint, wherein the security token corresponds to a decryption token on a gateway node of the plurality of gateway nodes within the cache cluster, wherein the security token and the access control service endpoint are passed as input parameters to the application; and

providing, in response to the application passing the security token to the gateway node having the decryption token thereon, a ticket that grants access to the reserved space on the cache cluster.

16. The computer-readable media device of claim 15 , wherein the program instructions, upon execution by the processor, further cause the processor to identify the cache cluster to host the new multi-tenant cache based upon the requested cache size and a user-requested location.

17. The computer-readable media device of claim 15 , wherein the program instructions, upon execution by the processor, further cause the processor to provision the security token using an access control service associated with the access control service endpoint.

18. The computer-readable media device of claim 15 , wherein the program instructions, upon execution by the processor, further cause the processor to establish a per-tenant cache quota based upon the requested cache size.

19. The computer-readable media device of claim 15 , wherein the program instructions, upon execution by the processor, further cause the processor to establish a tenant bandwidth that identifies a maximum number of transactions or size of transactions for a selected period.

20. The computer-readable media device of claim 15 , wherein the cache cluster comprises a ring network of cache servers, and wherein the plurality of gateway nodes track a location of data within the ring network of cache servers.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034544/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 17, 2011
From: BENDAPUDI, PERRAJU; S., HARI KRISHNAN; VEERAMACHANENI, JITHENDRA K.; PERI, JAGAN M.; KAKKAR, JATIN; YADAV, AMIT KUMAR
To: MICROSOFT CORPORATION
Reel/Frame 027068/0463 →
Continuity (1)
Related Publication 20130097680A1 · Apr 18, 2013
Cited By (4)
US 12,231,252 US 12,254,340 US 12,341,680 US 12,726,402