IP Library Granted Patent US 9,916,201
Granted Patent B2
US 9,916,201 · App. 14/811,040 · Granted Mar 13, 2018

Write performance in fault-tolerant clustered storage systems

Inventors: Wendy A. Belluomini (San Jose, CA); Karan Gupta (San Jose, CA); Dean Hildebrand (San Jose, CA); Anna S. Povzner (San Jose, CA); Himabindu Pucha (San Jose, CA); Renu Tewari (San Jose, CA)
Assignee: International Business Machines Corporation
G06F11/1415G06F11/1666G06F17/30132G06F17/30174G06F17/30362G06F17/30371G06F17/30581H04L67/1095H04L67/2842G06F11/20G06F2201/825
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,916,201
App. No.
14/811,040
Granted
Mar 13, 2018
Kind
B2
Abstract

Embodiments relate to supporting transaction data committed to a stable storage. Committed data in the cluster is stored in the persistent cache layer and replicated and stored in the cache layer of one or more secondary nodes. One copy is designated as a master copy and all other copies are designated as replica, with an exclusive write lock assigned to the master and a shared write lock extended to the replica. An acknowledgement of receiving the data is communicated following confirmation that the data has been replicated to each node designated to receive the replica. Managers and a director are provided to support management of the master copy and the replicas within the file system, including invalidation of replicas, fault tolerance associated with failure of a node holding a master copy, recovery from a failed node, recovered of the file system from a power failure, and transferring master and replica copies within the file system.

Claims (22)

1. A computer program product comprising a computer readable hardware storage device having program code embodied therewith, the program code executable by a processing unit to:

temporarily hold committed data in distributed non-volatile memory of nodes in a cluster;

in response to receiving a synchronous write transaction in a file system, place data associated with the received write transaction in a page cache layer and replicate the received data within the page cache layer of one or more remote nodes in the cluster;

distinguish between a master copy and a replica of the received data; and

invalidate each replica on the one or more remote nodes in response to flushing the master copy to persistent storage.

2. The computer program product of claim 1 , wherein the program code to distinguish between the master copy and replica of the received data further comprising code to apply an existing cache policy to the master copy of the received data.

3. The computer program product of claim 1 , wherein the master copy is a first byte range in the cache layer.

4. The computer program product of claim 3 , further comprising the master copy having an exclusive cluster-wide write lock on the first byte range.

5. The computer program product of claim 1 , wherein the replica is a second byte range in the cache layer.

6. The computer program product of claim 5 , further comprising the replica having a shared cluster-wide write lock in the second byte range.

7. The computer program product of claim 1 , further comprising in response to recovery of the cluster from a power failure, program code to recover data from non-volatile memory content in each node, and identify master and replica copies from a characteristic of a data byte range, and validate master and replica copies by re-acquiring cluster-wide write locks.

8. A system comprising:

a page cache layer integrated with a stable memory layer in a file system to temporarily hold committed data in distributed non-volatile memory of nodes in a cluster, each node having a processing unit in communication with memory;

in response to receiving a synchronous write transaction in a file system, place data associated with the received write transaction in a page cache layer and replicate the received data within the page cache layer of one or more remote nodes in the cluster;

distinguish between a master copy and a replica of the received data; and

invalidate each replica on the one or more remote nodes in response to flushing the master copy to persistent storage.

9. The system of claim 8 , further comprising code to apply an existing cache policy to the master copy of the received data.

10. The system of claim 8 , wherein the master copy is a first byte range in the cache layer.

11. The system of claim 10 , further comprising the master copy having an exclusive cluster-wide write lock on the first byte range.

12. The system of claim 8 , wherein the replica is a second byte range in the cache layer.

13. The system of claim 12 , further comprising the replica having a shared cluster-wide write lock in the second byte range.

14. The system of claim 8 , further comprising in response to recovery of the cluster from a power failure, recover data from non-volatile memory content in each node, and identify master and replica copies from a characteristic of a data byte range, and validate master and replica copies by re-acquiring cluster-wide write locks.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 28, 2015
From: BELLUOMINI, WENDY A.; GUPTA, KARAN; HILDEBRAND, DEAN; POVZNER, ANNA S.; PUCHA, HIMABINDU; TEWARI, RENU
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 036201/0855 →
Continuity (2)
Continuation 13719590 · Dec 19, 2012
Related Publication 20150331925A1 · Nov 19, 2015