IP Library Granted Patent US 10,929,100
Granted Patent B2
US 10,929,100 · App. 16/124,632 · Granted Feb 23, 2021

Mitigating causality discrepancies caused by stale versioning

Inventors: Raeanne Marks (Seattle, WA); Jason Vigil (Denver, CO); Tanuj Khurana (New Dehli, IN)
Assignee: EMC IP Holding Company LLC
G06F7/08G06F16/1734G06F16/9024
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,100
App. No.
16/124,632
Granted
Feb 23, 2021
Kind
B2
Abstract

Implementations are provided herein for causally ordering events within a distributed file system. Each node within the distributed file system, when processing an event, can collect object/version pairs associated with event (e.g., an object identifier and an object version number of the object at the time of the event). Object/version pairs can be identified and labeled as reliable or unreliable based on the operation performed on the inode as a part of the event. Relationships between events can be established when two events modify the same object and one event has a lower revision number. If the two object/revision pairs are in a relationship, an unreliable relationship can be deemed a weak edge and a reliable relationship can be deemed a strong edge. Using the strong and weak edges associated with object/revision pairs, a causal order of events can be generated.

Claims (27)

1. A method for causally ordering a set of events in a cluster of nodes operating as a distributed file system comprising:

maintaining an event transaction log, wherein events in the event transaction log are associated with an event identifier and each event includes a set of viewed inode number and inode revision number pairs and a set of modified inode number and inode revision number pairs;

generating an inode map based on the event transaction log, wherein the inode map maps event identifiers to inode revision numbers associated with each inode number referenced in the event transaction log;

generating a directed acyclic graph based on the inode map and the event transaction log, wherein a vertex in the directed acyclic graph represents an event identifier and an edge in the directed acyclic graph represents a causal relationship, wherein edges in the directed acyclic graph are strong if the causal relationship is based on the set of modified inode number and inode revision number pairs and weak if the causal relationship is based on an earlier event of the causal relationship being in the set of viewed inode number and inode revision number pairs; and

causally ordering events in the event transaction log based on a topological sort of the directed acyclic graph.

2. The method of claim 1 further comprising: in response to drawing a strong edge that contradicts a weak edge, removing the weak edge from the directed acyclic graph.

3. The method of claim 1 , wherein generating the directed acyclic graph includes not drawing a weak edge between two vertices if a strong edge has already been drawn between the two vertices.

4. The method of claim 1 further comprising: in response to the topological sort indicating a contradictory loop, removing a weak edge from the directed acyclic graph.

5. The method of claim 1 , wherein a weak edge is converted to a strong edge if event associated with the view inode number and inode revision number pair is associated with an exclusive lock.

6. A system comprising at least one storage device and at least one hardware processor configured to:

maintain an event transaction log, wherein events in the event transaction log are associated with an event identifier and each event includes a set of viewed inode number and inode revision number pairs and a set of modified inode number and inode revision number pairs;

generate an inode map based on the event transaction log, wherein the inode map maps event identifiers to inode revision numbers associated with each inode number referenced in the event transaction log;

generate a directed acyclic graph based on the inode map and the event transaction log, wherein a vertex in the directed acyclic graph represents an event identifier and an edge in the directed acyclic graph represents a causal relationship, wherein edges in the directed acyclic graph are strong if the causal relationship is based on the set of modified inode number and inode revision number pairs and weak if the causal relationship is based on an earlier event of the causal relationship being in the set of viewed inode number and inode revision number pairs; and

causally order events in the event transaction log based on a topological sort of the directed acyclic graph.

7. The system of claim 6 , further configured to: in response to drawing a strong edge that contradicts a weak edge, remove the weak edge from the directed acyclic graph.

8. The system of claim 6 , wherein generating the directed acyclic graph includes not drawing a weak edge between two vertices if a strong edge has already been drawn between the two vertices.

9. The system of claim 6 , further configured to: in response to the topological sort indicating a contradictory loop, remove a weak edge from the directed acyclic graph.

10. The system of claim 6 , wherein a weak edge is converted to a strong edge if event associated with the view inode number and inode revision number pair is associated with an exclusive lock.

11. A non-transitory computer readable medium with program instructions stored thereon to perform the following acts:

maintaining an event transaction log, wherein events in the event transaction log are associated with an event identifier and each event includes a set of viewed inode number and inode revision number pairs and a set of modified inode number and inode revision number pairs;

generating an inode map based on the event transaction log, wherein the inode map maps event identifiers to inode revision numbers associated with each inode number referenced in the event transaction log;

generating a directed acyclic graph based on the inode map and the event transaction log, wherein a vertex in the directed acyclic graph represents an event identifier and an edge in the directed acyclic graph represents a causal relationship, wherein edges in the directed acyclic graph are strong if the causal relationship is based on the set of modified inode number and inode revision number pairs and weak if the causal relationship is based on an earlier event of the causal relationship being in the set of viewed inode number and inode revision number pairs; and

causally ordering events in the event transaction log based on a topological sort of the directed acyclic graph.

12. The non-transitory computer readable medium of claim 11 , with program instructions stored thereon to further perform the following acts: in response to drawing a strong edge that contradicts a weak edge, removing the weak edge from the directed acyclic graph.

13. The non-transitory computer readable medium of claim 11 , wherein generating the directed acyclic graph includes not drawing a weak edge between two vertices if a strong edge has already been drawn between the two vertices.

14. The non-transitory computer readable medium of claim 11 , with program instructions stored thereon to further perform the following acts: in response to the topological sort indicating a contradictory loop, removing a weak edge from the directed acyclic graph.

15. The non-transitory computer readable medium of claim 11 , wherein a weak edge is converted to a strong edge if event associated with the view inode number and inode revision number pair is associated with an exclusive lock.

Assignments (6)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST AT REEL 050405 FRAME 0534 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058001/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Sep 17, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 050405/0534 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 7, 2018
From: MARKS, RAEANNE; VIGIL, JASON; KHURANA, TANUJ
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 046813/0149 →