| US 7,552,297 B2 | ||
| Instant copy of data in a cache memory via an atomic command | ||
| Ofir Zohar, Alfe-Menashe (Israel); Haim Helman, Herzelya (Israel); Dror Cohen, Tel Aviv (Israel); Shemer Schwartz, Tel Aviv (Israel); Yaron Revah, Tel Aviv (Israel); and Efri Zeidner, Mozkin (Israel) | ||
| Assigned to International Business Machines Corporation, Armonk, N.Y. (US) | ||
| Filed on Jul. 21, 2006, as Appl. No. 11/491,475. | ||
| Claims priority of provisional application 60/721546, filed on Sep. 29, 2005. | ||
| Prior Publication US 2007/0073987 A1, Mar. 29, 2007 | ||
| Int. Cl. G06F 12/16 (2006.01) | ||
| U.S. Cl. 711—162 [711/161] | 6 Claims |

| 1. A method to create a copy of data in a cache memory module associated with a storage system by an instant copy process
(“ICP”), said method comprising the steps of:
maintaining, in said cache memory module, a first descriptor associated with a first partition and a second descriptor associated
with a second partition, said first partition associated with a source logical unit (“LUS”) and said second partition associated with a target logical unit (“LUT”);
establishing an ICP between said first partition and said second partition by setting an ICP flag in said first descriptor
and said second descriptor indicating said first partition and said second partition are undergoing a copy-on-write operation;
dissociating each data block currently associated with said second partition;
copying each block BN of said first partition in said cache memory module from said first partition to said second partition in said cache memory
module by updating a location of each block BN in said second descriptor;
triggering a fetch task to fetch one or more blocks of said first partition not in said cache memory module from one or more
storage units in said storage system;
receiving one or more fetched data blocks from said one or more storage units into said cache memory module;
determining whether there is data in said cache memory module associated with the one or more received data blocks in said
first partition, and if so, associating said one or more received data blocks with said first partition in said cache memory
module;
determining whether there is data in said cache memory module associated with the one or more received data blocks in said
second partition, and if so, associating the one or more received data blocks with said first partition in said cache memory
module; and
setting said ICP flag to indicate that said first partition and said second partition have completed said ICP.
|