IP Library Granted Patent US 11,635,897
Granted Patent B2
US 11,635,897 · App. 17/389,941 · Granted Apr 25, 2023

System and method for efficient implementation of XCopy commands

Inventors: Nimrod Shani (Ra'anana, IL); Shari A. Vietry (Merrimack, NH); Vikram A. Prabhakar (Cary, NC); Vamsi K. Vankamamidi (Hopkinton, MA)
Assignee: EMC IP Holding Company, LLC
G06F3/061G06F3/065G06F3/0679G06F9/467G06F16/2255
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 11,635,897
App. No.
17/389,941
Granted
Apr 25, 2023
Kind
B2
Abstract

A method, computer program product, and computer system for receiving an XCopy command is provided. The XCopy command may be in the form of an IO operation. The IO operation may be a subextent block operation. A source range and a destination range of the XCopy command may be determined to be aligned within an alignment boundary. The Xcopy command may be determined to be smaller than a predetermined size. In response to determining the source range and destination range of the XCopy command are aligned within the alignment boundary and the XCopy command is smaller than a predetermined size, the XCopy command may be processed. The receiving of the XCopy command may be recorded in a log.

Claims (32)

1. A computer-implemented method comprising:

receiving, via a computing device, an XCopy command, wherein the XCopy command is in the form of an IO operation, wherein the IO operation is a subextent block operation;

determining if a source range and a destination range of the XCopy command are aligned within an alignment boundary and the XCopy command is smaller than a predetermined size;

in response to determining the source range and destination range of the XCopy command are aligned within the alignment boundary and the XCopy command is smaller than a predetermined size, processing the XCopy command; and

recording, in a log, that the XCopy command was received.

2. The computer-implemented method of claim 1 , wherein the XCopy command is received without performing a read of a source logical block address (LBA) associated with the XCopy command and without writing read data of the XCopy command to a destination LBA.

3. The computer-implemented method of claim 1 , further comprising acquiring a distributed shared lock on a source volume associated with a source of the XCopy command and acquiring a distributed exclusive lock on a destination volume page associated with a destination of the XCopy command.

4. The computer-implemented method of claim 3 , wherein acquiring a distributed shared lock on a source volume associated with a source of the XCopy command is configured to not load a page from the source volume associated with the source of the XCopy command.

5. The computer-implemented method of claim 1 , further comprising updating a hash table using the source range and the destination range.

6. The computer-implemented method of claim 1 , further comprising determining if there is a barrier logical sequence number (LSN) within a transactional cache to be flushed before recording in the log that the XCopy command was received.

7. The computer-implemented method of claim 1 , further comprising pausing a read of the XCopy command and flushing a logical sequence number (LSN) associated with a destination of the XCopy command.

8. A computer program product residing on a non-transitory computer readable storage medium having a plurality of instructions stored thereon which, when executed across one or more processors, causes at least a portion of the one or more processors to perform operations comprising:

receiving an XCopy command, wherein the XCopy command is in the form of an IO operation, wherein the IO operation is a subextent block operation;

determining if a source range and a destination range of the XCopy command are aligned within an alignment boundary and the XCopy command is smaller than a predetermined size;

in response to determining the source range and destination range of the XCopy command are aligned within the alignment boundary and the XCopy command is smaller than a predetermined size, processing the XCopy command; and

recording, in a log, that the XCopy command was received.

9. The computer program product of claim 8 , wherein the XCopy command is received without performing a read of a source logical block address (LBA) associated with the XCopy command and without writing read data of the XCopy command to a destination LBA.

10. The computer program product of claim 8 , further comprising acquiring a distributed shared lock on a source volume associated with a source of the XCopy command and acquiring a distributed exclusive lock on a destination volume page associated with a destination of the XCopy command.

11. The computer program product of claim 10 , wherein acquiring a distributed shared lock on a source volume associated with a source of the XCopy command is configured to not load a page from the source volume associated with the source of the XCopy command.

12. The computer program product of claim 8 , further comprising updating a hash table using the source range and the destination range.

13. The computer program product of claim 8 , further comprising determining if there is a barrier logical sequence number (LSN) within a transactional cache to be flushed before recording in the log that the XCopy command was received.

14. The computer program product of claim 8 , further comprising pausing a read of the XCopy command and flushing a logical sequence number (LSN) associated with a destination of the XCopy command.

15. A computing system comprising:

a memory; and

a processor configured to receive an XCopy command, wherein the XCopy command is in the form of an TO operation, wherein the TO operation is a subextent block operation, wherein the processor is further configured to determine if a source range and a destination range of the XCopy command are aligned within an alignment boundary and the XCopy command is smaller than a predetermined size, wherein the processor is further configured to process, in response to determining the source range and destination range of the XCopy command are aligned within the alignment boundary and the XCopy command is smaller than a predetermined size, the XCopy command, wherein the processor is further configured to record, in a log, that the XCopy command was received.

16. The computing system of claim 15 , wherein the XCopy command is received without performing a read of a source logical block address (LBA) associated with the XCopy command and without writing read data of the XCopy command to a destination LBA.

17. The computing system of claim 15 , wherein acquiring a distributed shared lock on a source volume associated with a source of the XCopy command and acquiring a distributed exclusive lock on a destination volume page associated with a destination of the XCopy command.

18. The computing system of claim 17 , wherein acquiring a distributed shared lock on a source volume associated with a source of the XCopy command is configured to not load a page from the source volume associated with the source of the XCopy command.

19. The computing system of claim 15 , wherein the processor is further configured to:

update a hash table using the source range and the destination range; and

determine if there is a barrier logical sequence number (LSN) within a transactional cache to be flushed before recording in the log that the XCopy command was received.

20. The computing system of claim 15 , wherein the processor is further configured to pause a read of the XCopy command and flushing a logical sequence number (LSN) associated with a destination of the XCopy command.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (057758/0286) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 061654/0064 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (058014/0560) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0473 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (057931/0392) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0382 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 12, 2021
From: SHANI, NIMROD; VIETRY, SHARI A.; PRABHAKAR, VIKRAM A.; VANKAMAMIDI, VAMSI K.
To: EMC IP HOLDING COMPANY, LLC
Reel/Frame 057761/0428 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 058014/0560 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 057931/0392 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 057758/0286 →
SECURITY AGREEMENT Recorded Oct 1, 2021
From: DELL PRODUCTS, L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 057682/0830 →
Continuity (1)
Related Publication 20230035390A1 · Feb 2, 2023
Cited By (3)
US 12,367,151 US 12,411,628 US 12,554,742