# US 2015/0106884 A1 · Memcached multi-tenancy offload

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

- Number: US 2015/0106884 A1
- Document ID: US20150106884A1
- Status: Published application
- Kind: A1
- Application number: 14/511,913
- Filed: 2014-10-10
- Published: 2015-04-16
- Earliest claimed: 2013-10-11
- Assignees: Broadcom Corporation
- Applicants: Broadcom Corporation
- Inventors: Rafi Shalom; Karin Inbar; Ofir Hermesh
- Web page: https://patentgrep.com/patent/US20150106884A1

## CPC

- H04L 63/101: {Access control lists [ACL]}
- G06F 21/6218: {to a system of files or objects, e.g. local or distributed file system or database}
- H04L 67/568: Storing data temporarily at an intermediate stage, e.g. caching
- G06F 12/084: with a shared cache
- G06F 12/0842: for multiprocessing or multitasking
- G06F 12/1483: {using an access-table, e.g. matrix or list}
- G06F 2212/1016: Performance improvement
- G06F 2212/1052: Security improvement
- G06F 2212/154: Networked environment
- G06F 2212/163: Server or database system
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

The present disclosure provides one or network devices having a shared resource that can be remotely accessed by multiple users, also referred to as tenants. The shared resource can be located within one network device or can be spread throughout multiple network devices. One or more resources from among the shared resource can be allocated to one or more corresponding tenants from among the multiple tenants. The one or more corresponding tenants can access their respective resources using one or more commands. The one or network devices can implement an authorization procedure to ensure that the one or more tenants can only access their respective resources. The authorization procedure represents an access control mechanism to grant access to the one or more tenants to only their respective resources.

## Claims

### Claim 1

A system for accessing a shared resource, the system comprising:
a first shared network device communicatively coupled to a plurality of tenants; and
a second shared network device communicatively coupled to the plurality of tenants,
wherein the shared resource is parsed between the first shared network device and the second network device,
wherein a first portion of the shared resource is allocated to a first tenant from among the plurality of tenants and a second portion of the shared resource is allocated to a second tenant from among the plurality of tenants, and
wherein the first and the second shared network device are configured to implement an authorization procedure to ensure that the first and the second tenants can only access their corresponding portions of the shared resource.

### Claim 2 (depends on 1)

The system of claim 1, wherein the first and the second shared network device are configured to grant access to the first portion of the shared resource to the first tenant when the authorization procedure indicates that the first tenant is requesting to only access its allocated first portion of the shared resource and to the second portion of the shared resource to the second tenant when the authorization procedure indicates that the second tenant is requesting to only access its allocated first portion of the shared resource.

### Claim 3 (depends on 1)

The system of claim 1, wherein the shared resource comprises:
a first cache memory that is implemented within the first shared network device; and
a second cache memory that is implemented within the second shared network device.

### Claim 4 (depends on 1)

The system of claim 1, wherein the first shared network device is further configured to:
receive a request to access the first portion of the shared resource of from the first tenant;
determine an association between an identity of a tenant from among the plurality of tenants that provided the request and the first portion of the shared resource; and
grant access to the first tenant to the first portion of the shared resource when the identity is associated with the first portion of the shared resource.

### Claim 5 (depends on 4)

The system of claim 4, wherein the request comprises:
a security key provided by the first tenant, and
wherein the first shared network device is configured to match the security key to a plurality of securities keys to determine the association.

### Claim 6 (depends on 1)

The system of claim 1, wherein the first shared network device is further configured to:
receive a request to access the first portion of the shared resource of from the second tenant;
determine an association between an identity of a tenant from among the plurality of tenants that provided the request and the first portion of the shared resource; and
deny access to the second tenant to the first portion of the shared resource when the identity is not associated with the first portion of the shared resource.

### Claim 7 (depends on 6)

The system of claim 6, wherein the request comprises:
a security key provided by the first tenant, and
wherein the first shared network device is configured to match the security key to a plurality of securities keys to determine the association.

### Claim 8

A memcache server with a shared resource infrastructure that parses a shared resource among a plurality of memcache servers, the memcache server comprising:
a network interface card configured to receive a request to access the shared resource having a memcache command and to determine whether to process the request locally or to forward the request to be remotely processed based upon the memcache command; and
a central processing unit configured to receive the request when the request to is be remotely processed.

### Claim 9 (depends on 8)

The memcache server of claim 8, wherein the network interface card is further configured to process the request and to provide a response to the request when the request is determined to be processed locally.

### Claim 10 (depends on 8)

The memcache server of claim 8, wherein the central processing unit is further configured to process the request and to provide a response to the request to the network interface care when the request is determined to be processed remotely.

### Claim 11 (depends on 8)

The memcache server of claim 8, further comprising:
a cache memory having a plurality of blocks for storing data, a first group of blocks from among the plurality of blocks being allocated to a first tenant from among a plurality of tenants and a second group of blocks from among the plurality of blocks being allocated to a second tenant from among the plurality of tenants.

### Claim 12 (depends on 8)

The memcache server of claim 8, wherein the network interface card is configured to implement an authorization procedure to ensure that a tenant that provided the request to access can only access the its corresponding portions of the shared resource and to grant access to the shared resource to the tenant when the authorization procedure indicates that the tenant is requesting to only access its allocated portion of the shared resource.

### Claim 13 (depends on 8)

The memcache server of claim 8, wherein the central processing unit is configured to implement an authorization procedure to ensure that a tenant that provided the request to access can only access its corresponding portions of the shared resource and to grant access to the shared resource to the tenant when the authorization procedure indicates that the tenant is requesting to only access its allocated portion of the shared resource.

### Claim 14 (depends on 8)

The memcache server of claim 8, wherein the request comprises:
a memcache “GET” command, and
wherein the network interface card is configured to process the request locally or to forward the request to be remotely processed based upon the memcache “GET” command.

### Claim 15 (depends on 8)

The memcache server of claim 8, wherein the request comprises:
a security key provided by a tenant from among a plurality of tenants,
wherein the network interface card is further configured to compare the security key provided by the tenant with a corresponding security key that is associated with the shared resource to determine whether to grant access to the tenant when the request is determined to be processed locally, and
wherein the central processing unit is further configured to compare the security key provided by the tenant with a corresponding security key that is associated with the shared resource to determine whether to grant access to the tenant when the request is determined to be processed remotely.

### Claim 16

A method for accessing a shared resource that is parsed between shared network device from among a plurality of shared network devices, the method comprising:
allocating a first portion of the shared resource to a first tenant from among the plurality of tenants and a second portion of the shared resource to a second tenant from among the plurality of tenants,
receiving a request to access the first portion of the shared resource from the first tenant;
implementing an authorization procedure to ensure that the first and the second tenants can only access their corresponding portions of the shared resource in response to the request; and
granting access to the first portion of the shared resource to the first tenant when the authorization procedure indicates that the first tenant is requesting to only access the first portion of the shared resource.

### Claim 17 (depends on 16)

The method of claim 16, further comprising:
denying access to the first portion of the shared resource to the second tenant when the authorization procedure indicates that the second tenant is requesting to access the first portion of the shared resource.

### Claim 18 (depends on 16)

The method of claim 16, wherein the implementing comprises:
comparing a security key provided by the first tenant with a corresponding security key that is associated with the first portion of the shared resource; and
granting access to the first tenant to the shared resource when the security key provided by the first tenant matches the corresponding security key that is associated with the first portion of the shared resource.

### Claim 19 (depends on 16)

The method of claim 16, wherein the implementing comprises:
comparing a security key provided by the first tenant with a corresponding security key that is associated with the first portion of the shared resource; and
denying access to the first tenant to the shared resource when the security key provided by the first tenant does not match the corresponding security key that is associated with the first portion of the shared resource.

### Claim 20 (depends on 16)

The method of claim 16, wherein the shared resource is a cache memory, and
wherein the allocating comprises:
allocating a first group of blocks from among the plurality of blocks to allocated to the first tenant and a second group of blocks from among the plurality of blocks to a second tenant from among the plurality of tenants.
