IP Library Granted Patent US 9,213,644
Granted Patent B2
US 9,213,644 · App. 13/788,593 · Granted Dec 15, 2015

Allocating enclosure cache in a computing system

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 9,213,644
App. No.
13/788,593
Granted
Dec 15, 2015
Kind
B2
Abstract

Allocating enclosure cache in a computing system that includes an enclosure and a plurality of enclosure attached servers, including: receiving, by the enclosure, memory access information from each of the plurality of enclosure attached servers; determining, by the enclosure in dependence upon the memory access information, an amount of enclosure cache to allocate as shared cache that can be accessed by two or more of the enclosure attached servers; and determining, by the enclosure in dependence upon the memory access information, an amount of enclosure cache to allocate to each enclosure attached server for exclusive use by the enclosure attached server.

Claims (29)

1. An apparatus comprising a computing device, a computer processor, a computer memory operatively coupled to the computer processor, the computer memory having disposed within it computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of:

receiving memory access information from each of a plurality of servers that are attached to a cache;

determining, in dependence upon the memory access information, an amount of the cache to allocate as shared cache that can be accessed by two or more of the servers, wherein determining the amount of the cache to allocate as shared cache comprises identifying, based on the memory access information, files in the cache accessed by two or more of the plurality of servers;

determining, in dependence upon the memory access information, an amount of the cache to allocate to each server for exclusive use by the server; and

based on the determinations, allocating a first portion as shared cache and a second portion for exclusive use by each server.

2. The apparatus of claim 1 wherein determining an amount of the cache to allocate as shared cache further comprises identifying an amount of data that is accessed by two or more of the servers.

3. The apparatus of claim 1 wherein determining, in dependence upon the memory access information, an amount of the cache to allocate to each server for exclusive use by the server further comprises:

receiving performance metrics for each server; and

allocating, to each server, an amount of the cache for exclusive use by the server in dependence upon the performance metrics for each server.

4. The apparatus of claim 3 wherein performance metrics for each server includes a local server cache hit rate.

5. The apparatus of claim 1 wherein the memory access information from each of the plurality of servers includes metadata identifying all data that the server has accessed during a predetermined period of time.

6. The apparatus of claim 5 further comprising computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the step of determining, in dependence upon the metadata identifying all data that the server has accessed during a predetermined period of time, an amount of data that is accessed by two or more of the servers; and

wherein determining an amount of the cache to allocate as shared cache that can be accessed by two or more of the servers includes determining an amount of the cache to allocate as shared cache in dependence upon the amount of data that is accessed by two or more of the servers.

7. The apparatus of claim 5 further comprising computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the step of determining, in dependence upon the metadata identifying all data that the server has accessed during a predetermined period of time, a percentage of memory accesses that are repeated by the server; and

wherein determining an amount of the cache to allocate to each server includes determining an amount of the cache to allocate to each server in dependence upon the percentage of memory accesses that are repeated by the server.

8. A computer program product disposed upon a non-transitory computer readable storage medium, the computer program product comprising computer program instructions that, when executed, cause a computer to carry out the steps of:

receiving memory access information from each of a plurality of servers that are attached to a cache;

determining, in dependence upon the memory access information, an amount of the cache to allocate as shared cache that can be accessed by two or more of the servers, wherein determining the amount of the cache to allocate as shared cache comprises identifying, based on the memory access information, files in the cache accessed by two or more of the plurality of servers;

determining, in dependence upon the memory access information, an amount of the cache to allocate to each server for exclusive use by the server, and

based on the determinations, allocating a first portion as shared cache and a second portion for exclusive use by each server.

9. The computer program product of claim 8 wherein determining an amount of the cache to allocate as shared cache further comprises identifying an amount of data that is accessed by two or more of the servers.

10. The computer program product of claim 8 wherein determining, in dependence upon the memory access information, an amount of the cache to allocate to each server for exclusive use by the server further comprises:

receiving performance metrics for each server; and

allocating, to each server, an amount of the cache for exclusive use by the server in dependence upon the performance metrics for each server.

11. The computer program product of claim 8 wherein the memory access information from each of the plurality of servers includes metadata identifying all data that the server has accessed during a predetermined period of time.

12. The computer program product of claim 11 further comprising computer program instructions that, when executed, cause the computer to carry out the step of determining, in dependence upon the metadata identifying all data that the server has accessed during a predetermined period of time, an amount of data that is accessed by two or more of the servers; and

wherein determining an amount of the cache to allocate as shared cache that can be accessed by two or more of the servers includes determining an amount of the cache to allocate as shared cache in dependence upon the amount of data that is accessed by two or more of the servers.

13. The computer program product of claim 11 further comprising computer program instructions that, when executed, cause the computer to carry out the step determining, in dependence upon the metadata identifying all data that the server has accessed during a predetermined period of time, a percentage of memory accesses that are repeated by the server; and

wherein determining an amount of the cache to allocate to each server includes determining an amount of the cache to allocate to each server in dependence upon the percentage of memory accesses that are repeated by the server.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 6, 2019
From: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE LTD.
To: LENOVO INTERNATIONAL LIMITED
Reel/Frame 050300/0947 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD.
To: LENOVO INTERNATIONAL LIMITED
Reel/Frame 037696/0522 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 10, 2014
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD.
Reel/Frame 034194/0111 →