Distributed shared memory for server clusters
First Claim
1. A method of managing data object references in a server cluster, comprising:
- responsive to a first process that executes on a first server device in the server cluster referencing a data object, retrieving data from disk, generating the data object using the retrieved data, and storing the generated object in memory of the first server device;
responsive to a second process that executes on a second server device of the cluster referencing the previously generated data object, creating or using a shared virtual memory space between the first and second server appliances; and
placing the generated data object in the shared memory space wherein the second server device may retrieve at least a portion of the data object using the shared memory space without accessing disk.
1 Assignment
0 Petitions
Accused Products
Abstract
A system comprising a cluster of diskless servers employing a distributed shared memory abstraction that presents an area of shared memory for two or more processes executing on different servers in the cluster. The invention provides the appearance of a shared memory space between two or more processes thereby potentially reducing disk latency or eliminating redundant computation associated with conventional server clusters. The DSM abstraction may be dynamically alterable such that selectable groups of processes executing on the cluster share a common address space temporarily. The shared memory spaces may be determined empirically or servers may subscribe to a group reactively in response to client requests. Multiple groups may exist simultaneously and a single server may belong to more than one group. The types of objects to which the abstraction is applied may be restricted. Shared memory may be restricted, for example, to read-only objects to alleviate consistency considerations.
-
Citations
24 Claims
-
1. A method of managing data object references in a server cluster, comprising:
-
responsive to a first process that executes on a first server device in the server cluster referencing a data object, retrieving data from disk, generating the data object using the retrieved data, and storing the generated object in memory of the first server device;
responsive to a second process that executes on a second server device of the cluster referencing the previously generated data object, creating or using a shared virtual memory space between the first and second server appliances; and
placing the generated data object in the shared memory space wherein the second server device may retrieve at least a portion of the data object using the shared memory space without accessing disk. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A server cluster, comprising
a first server device comprising at least one processor and memory; -
a second server device comprising process and memory connected to the first server device by an interconnect;
a switch connected to the first and second server devices and suitable for connecting the server cluster to a network; and
server cluster computer code means for creating or using a shared memory space responsive to the second server device executing a second process that references a data object that was generated by a first process executing on the first server device and computer code means for placing the generated data object in the shared memory space and wherein the second server retrieves the data object from the shared memory. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A computer program product comprising:
-
responsive to a first process that executes on a first server device in a server cluster referencing a data object, computer code means for retrieving data from disk, generating the data object using the retrieved data, and storing the generated object in memory of the first server device;
responsive to a second process that executes on a second server device of the cluster referencing the previously generated data object, computer code means for creating or using a shared memory space between the first and second server appliances; and
computer code means for placing the generated data object in the shared memory space wherein the second server device may retrieve at least a portion of the data object using the shared memory space without accessing disk. - View Dependent Claims (20, 21, 22, 23, 24)
-
Specification