IP Library Granted Patent US 10,929,238
Granted Patent B2
US 10,929,238 · App. 15/884,418 · Granted Feb 23, 2021

Management of changed-block bitmaps

Inventors: Alon Horowitz (Tel-Aviv, IL); Roman Speigelman (Yokneam Illit, IL); Ronnie Lazar (Kiryat Ono, IL); Avishay Traeger (Modiin, IL); Rafael Buchbinder (Kiryat Ono, IL)
Assignee: MELLANOX TECHNOLOGIES, LTD.
G06F11/1448G06F3/065G06F9/45558G06F11/1458G06F2009/45579G06F2201/84
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 10,929,238
App. No.
15/884,418
Granted
Feb 23, 2021
Kind
B2
Abstract

An apparatus includes an interface and a processor. The interface is configured to communicate with a computing system in which one or more workloads issue storage commands for execution in a storage volume comprising multiple storage blocks. The computing system continually updates a data structure that tracks which of the storage blocks of the storage volume have changed due to the storage commands. The processor is configured, in response to a request to create a copy of the storage volume, to instruct the computing system to (i) create a copy of the data structure and reset the data structure, (ii) create the copy of the storage volume, while continuing to execute the storage commands and update the data structure, and (iii) after the copy of the storage volume is completed, merge the data structure into the copy of the data structure.

Claims (38)

1. An apparatus, comprising:

an interface, configured to communicate with a computing system in which one or more workloads issue storage commands for execution in a storage volume comprising multiple storage blocks, wherein the computing system updates a changed-block data structure that tracks which of the storage blocks of the storage volume have changed due to the storage commands, since a previous reset of the changed-block data structure, for use by a backup process or a replication process; and

a processor, which is configured, in response to a request to create a copy of the storage volume, to instruct the computing system to:

(i) create a copy of the changed-block data structure and reset the changed-block data structure, to indicate that none of the blocks have changed;

(ii) create the copy of the storage volume, while continuing to execute the storage commands and update the changed-block data structure; and

(iii) after the copy of the storage volume is completed, merge the changed-block data structure into the copy of the changed-block data structure.

2. The apparatus according to claim 1 , wherein the computing system is configured to create the copy of the changed-block data structure and reset the changed-block data structure atomically, without processing any intervening storage commands.

3. The apparatus according to claim 1 , wherein the changed-block data structure and the copy of the changed-block data structure comprise respective bitmaps, and wherein the computing system is configured to merge the changed-block data structure into the copy of the changed-block data structure by performing a bit-wise OR operation between the bitmaps.

4. The apparatus according to claim 1 , wherein creation of the copy of the changed-block data structure and creation of the copy of the storage volume are unsynchronized with one another in the computing system.

5. The apparatus according to claim 1 , wherein, after merging the changed-block data structure into the copy of the changed-block data structure, the copy of the changed-block data structure indicates that a given storage block has changed, even though the given block has not actually changed.

6. The apparatus according to claim 1 , wherein, after merging the changed-block data structure into the copy of the changed-block data structure, the copy of the changed-block data structure indicates a change in a given storage block, which is reflected in the copy of the storage volume and which was executed in the storage volume after the copy of the changed-block data structure was created.

7. The apparatus according to claim 1 , wherein the processor is configured to copy and reset the changed-block data structure by swapping the existing changed-block data structure with a new, reset changed-block data structure.

8. An apparatus, comprising:

a computing system, which is configured to:

run one or more workloads that issue storage commands for execution in a storage volume comprising multiple storage blocks; and

repeatedly update a changed-block data structure that tracks which of the storage blocks of the storage volume have changed due to the storage commands since a previous reset of the changed-block data structure, for use by a backup process or a replication process; and

a processor, which is configured, in response to a request to create a copy of the storage volume, to instruct the computing system to:

(i) create a copy of the changed-block data structure and reset the changed-block data structure, to indicate that none of the blocks have changed;

(ii) create the copy of the storage volume, while continuing to execute the storage commands and update the changed-block data structure; and

(iii) after the copy of the storage volume is completed, merge the changed-block data structure into the copy of the changed-block data structure.

9. A method, comprising:

communicating with a computing system in which one or more workloads issue storage commands for execution in a storage volume comprising multiple storage blocks, wherein the computing system updates a changed-block data structure that tracks which of the storage blocks of the storage volume have changed due to the storage commands, since a previous reset of the changed-block data structure, for use by a backup process or a replication process; and

in response to a request to create a copy of the storage volume, instructing the computing system to:

(i) create a copy of the changed-block data structure and reset the changed-block data structure, to indicate that none of the blocks have changed;

(ii) create the copy of the storage volume, while continuing to execute the storage commands and update the changed-block data structure; and

(iii) after the copy of the storage volume is completed, merge the changed-block data structure into the copy of the changed-block data structure.

10. The method according to claim 9 , wherein creating the copy of the changed-block data structure and resetting the changed-block data structure are performed atomically, without processing any intervening storage commands.

11. The method according to claim 9 , wherein the changed-block data structure and the copy of the changed-block data structure comprise respective bitmaps, and wherein the computing system merges the changed-block data structure into the copy of the changed-block data structure by performing a bit-wise OR operation between the bitmaps.

12. The method according to claim 9 , wherein creation of the copy of the changed-block data structure and creation of the copy of the storage volume are unsynchronized with one another in the computing system.

13. The method according to claim 9 , wherein, after merging the changed-block data structure into the copy of the changed-block data structure, the copy of the changed-block data structure indicates that a given storage block has changed, even though the given block has not actually changed.

14. The method according to claim 9 , wherein, after merging the changed-block data structure into the copy of the changed-block data structure, the copy of the changed-block data structure indicates a change in a given storage block, which is reflected in the copy of the storage volume and which was executed in the storage volume after the copy of the changed-block data structure was created.

15. The method according to claim 9 , wherein creating the copy and reseting the changed-block data structure comprise swapping the existing changed-block data structure with a new, reset changed-block data structure.

16. A computer software product, the product comprising a tangible non-transitory computer-readable medium in which program instructions are stored, which instructions, when read by a processor, cause the processor to:

communicate with a computing system in which one or more workloads issue storage commands for execution in a storage volume comprising multiple storage blocks, wherein the computing system updates a changed-block data structure that tracks which of the storage blocks of the storage volume have changed due to the storage commands, since a previous reset of the changed-block data structure, for use by a backup process or a replication process; and

in response to a request to create a copy of the storage volume, instruct the computing system to:

(i) create a copy of the changed-block data structure and reset the changed-block data structure, to indicate that none of the blocks have changed;

(ii) create the copy of the storage volume, while continuing to execute the storage commands and update the changed-block data structure; and

(iii) after the copy of the storage volume is completed, merge the changed-block data structure into the copy of the changed-block data structure.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 13, 2020
From: STRATO SCALE LTD.
To: MELLANOX TECHNOLOGIES, LTD.
Reel/Frame 053184/0620 →
SECURITY INTEREST Recorded Jan 24, 2019
From: STRATO SCALE LTD.
To: KREOS CAPITAL VI (EXPERT FUND) L.P.
Reel/Frame 048115/0134 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 31, 2018
From: HOROWITZ, ALON; SPEIGELMAN, ROMAN; LAZAR, RONNIE; TRAEGER, AVISHAY; BUCHBINDER, RAFAEL
To: STRATO SCALE LTD.
Reel/Frame 044782/0237 →
Continuity (1)
Related Publication 20190235962A1 · Aug 1, 2019
Cited By (3)
US 12,197,297 US 12,450,130 US 12,645,549