IP Library Granted Patent US 12,153,968
Granted Patent B2
US 12,153,968 · App. 17/197,163 · Granted Nov 26, 2024

Synchronization object having a stamp for flows in a storage system

Inventors: Vladimir Shveidel (Pardes-Hana, IL); Lior Kamran (Rishon LeZion, IE)
Assignee: EMC IP Holding Company LLC
G06F9/52G06F9/542
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 12,153,968
App. No.
17/197,163
Granted
Nov 26, 2024
Kind
B2
Abstract

In one aspect, an example methodology implementing the disclosed techniques includes, responsive to a determination, by a first thread attempting to start an operation, that a second thread has started the operation, obtaining a value of a stamp included in a synchronization object related to the operation. The method also includes determining, by the first thread, whether the value of the stamp obtained is the same as a current value of the stamp and, responsive to a determination that the obtained value of the stamp is not the same as the current value of the stamp, continuing execution of the first thread. The method may further include, responsive to a determination that the obtained value of the stamp is the same as the current value of the stamp, suspending execution of the first thread.

Claims (52)

1. A computer implemented method for synchronizing on a notification event, the method comprising:

responsive to a determination, by a first thread attempting to start an operation, that a second thread has started the operation, obtaining a value of a stamp included in a synchronization object related to the operation, wherein obtaining the value of the stamp includes:

acquiring a spinlock of the synchronization object,

reading the value of the stamp from the synchronization object, and

releasing the spinlock of the synchronization object;

determining, by the first thread, a current value of the stamp by:

reacquiring the spinlock of the synchronization object,

rereading the value of the stamp from the synchronization object, and

rereleasing the spinlock of the synchronization object;

determining, by the first thread, whether the value of the stamp obtained is the same as the current value of the stamp; and

responsive to a determination, by the first thread, that the obtained value of the stamp is not the same as the current value of the stamp, continuing execution of the first thread.

2. The method of claim 1 , further comprising, responsive to a determination, by the first thread, that the obtained value of the stamp is the same as the current value of the stamp, suspending execution of the first thread.

3. The method of claim 2 , wherein suspending execution of the first thread comprises waiting in a thread queue associated with the synchronization object related to the operation.

4. The method of claim 3 , further comprising resuming execution of the first thread upon being released from the thread queue associated with the synchronization object related to the operation.

5. The method of claim 4 , wherein the first thread is released from the thread queue by the second thread upon the second thread completing the operation.

6. The method of claim 1 , wherein the value of the stamp is incremented by the second thread upon completing the operation.

7. The method of claim 1 , wherein the first thread and the second thread are threads in a storage system.

8. The method of claim 1 , wherein the first thread is associated with a forced flow and the second thread is associated with a regular flow.

9. A system comprising:

one or more non-transitory machine-readable mediums configured to store instructions; and

one or more processors configured to execute the instructions stored on the one or more non-transitory machine-readable mediums, wherein execution of the instructions causes the one or more processors to,

responsive to a determination, by a first thread attempting to start an operation, that a second thread has started the operation, obtain a value of a stamp included in a synchronization object related to the operation, wherein obtaining the value of the stamp includes:

acquiring a spinlock of the synchronization object,

reading the value of the stamp from the synchronization object, and

releasing the spinlock of the synchronization object;

determine, by the first thread, a current value of the stamp by:

reacquiring the spinlock of the synchronization object,

rereading the value of the stamp from the synchronization object, and

rereleasing the spinlock of the synchronization object;

determine, by the first thread, whether the value of the stamp obtained is the same as the current value of the stamp; and

responsive to a determination, by the first thread, that the obtained value of the stamp is not the same as the current value of the stamp, continue execution of the first thread.

10. The system of claim 9 , wherein execution of the instructions further causes the one or more processors to, responsive to a determination, by the first thread, that the obtained value of the stamp is the same as the current value of the stamp, suspend execution of the first thread.

11. The system of claim 10 , wherein to suspend execution of the first thread comprises to wait in a thread queue associated with the synchronization object related to the operation.

12. The system of claim 11 , wherein execution of the instructions further causes the one or more processors to resume execution of the first thread upon being released from the thread queue associated with the synchronization object related to the operation.

13. The system of claim 12 , wherein the first thread is released from the thread queue by the second thread upon completion of the operation.

14. The system of claim 9 , wherein the value of the stamp is incremented by the second thread upon completion of the operation.

15. A computer program product including one or more non-transitory machine-readable mediums encoding instructions that when executed by one or more processors cause a process to be carried out for synchronization on a notification event, the process comprising:

responsive to a determination, by a first thread attempting to start an operation, that a second thread has started the operation, obtaining a value of a stamp included in a synchronization object related to the operation, wherein obtaining the value of the stamp includes:

acquiring a spinlock of the synchronization object,

reading the value of the stamp from the synchronization object, and

releasing the spinlock of the synchronization object;

determining, by the first thread, a current value of the stamp by:

reacquiring the spinlock of the synchronization object,

rereading the value of the stamp from the synchronization object, and

rereleasing the spinlock of the synchronization object;

determining, by the first thread, whether the value of the stamp obtained is the same as the current value of the stamp; and

responsive to a determination, by the first thread, that the obtained value of the stamp is not the same as the current value of the stamp, continuing execution of the first thread.

16. The computer program product of claim 15 , wherein the process further comprises, responsive to a determination, by the first thread, that the obtained value of the stamp is the same as the current value of the stamp, suspending execution of the first thread.

17. The computer program product of claim 16 , wherein suspending execution of the first thread comprises waiting in a thread queue associated with the synchronization object related to the operation.

18. The computer program product of claim 17 , wherein the process further comprises resuming execution of the first thread upon being released from the thread queue associated with the synchronization object related to the operation.

19. The computer program product of claim 18 , wherein the first thread is released from the thread queue by the second thread upon the second thread completing the operation.

20. The computer program product of claim 15 , wherein the value of the stamp is incremented by the second thread upon completing the operation.

Assignments (10)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0280) 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/0255 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0124) 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/0012 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0001) 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 062021/0844 →
RELEASE OF SECURITY INTEREST Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058297/0332 →
SECURITY INTEREST Recorded May 19, 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 056295/0124 →
SECURITY INTEREST Recorded May 19, 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 056295/0001 →
SECURITY INTEREST Recorded May 19, 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 056295/0280 →
CORRECTIVE ASSIGNMENT TO CORRECT THE MISSING PATENTS THAT WERE ON THE ORIGINAL SCHEDULED SUBMITTED BUT NOT ENTERED PREVIOUSLY RECORDED AT REEL: 056250 FRAME: 0541. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded May 17, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 056311/0781 →
SECURITY AGREEMENT Recorded May 14, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 056250/0541 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 6, 2021
From: SHVEIDEL, VLADIMIR; KAMRAN, LIOR
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 055831/0338 →
Continuity (1)
Related Publication 20220291971A1 · Sep 15, 2022