Continuous namespace verification for single-node filesystems
US-2024111726-A1 · Apr 4, 2024 · US
US12554595B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-12554595-B2 |
| Application number | US-202418410737-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jan 11, 2024 |
| Priority date | Jan 11, 2024 |
| Publication date | Feb 17, 2026 |
| Grant date | Feb 17, 2026 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Cluster nodes are allowed to start transactions involving modifications to multiple entities by locking a current entity for a current modification associated with a transaction, but not locking a subsequent entity for a subsequent modification associated with the same transaction. Undo log records are generated to allow the modifications to be rolled back. When a lock being held by a first node for a first transaction involving a modification made to an entity is requested by a second node for a second transaction involving the same entity, an undo record is persisted to a log to allow the modification to be rolled back, the lock being held by the first node is revoked and provided to the second node. Upon a determination that the first node has crashed before the first transaction could be committed, the log is replayed to undo the modification made by the first node.
Opening claim text (preview).
What is claimed is: 1 . A method comprising: allowing a first node of a cluster to start a first atomic transaction involving modifications to a first entity and a second entity of a data structure by locking the first entity for a first modification associated with a first atomic transaction, but not locking the second entity for a second modification associated with first atomic transaction; generating, at the first node, a first undo record for the first modification to allow the first modification made to the first entity to be rolled back, the first undo record being maintained in memory only at the first node and not persisted; after the first modification to the first entity has been made by the first node, unlocking the first entity and locking the second entity for the second modification; generating, at the first node, a second undo record for the second modification to allow the second modification made to the second entity to be rolled back, the second undo record being maintained in memory only at the first node and not persisted; before the first atomic transaction is committed and when a lock being held by the first node for the first atomic transaction involving the second modification made to the second entity is requested by a second node for a second atomic transaction involving the second entity, triggering a persisting of the second undo record to a log of the first node, the second undo record corresponding to the second modification made to the second entity by the first node for the first atomic transaction and the second undo record now being persisted; revoking the lock on the second entity being held by the first node for the first atomic transaction; and providing the lock to the second node; upon a determination that the first node has crashed before the first atomic transaction could be committed, replaying the log having the second undo record and associated with the first node to undo the second modification made to the second entity by the first node for the first atomic transaction; and before the first atomic transaction is committed, exposing, to the second node, the first entity comprising the first modification made by the first node. 2 . The method of claim 1 wherein the data structure comprises a B+ tree data structure and the entities comprise leaf pages of the B+ tree data structure. 3 . The method of claim 1 wherein the second undo record for the second modification made to the second entity by the first node is not persisted to the log until the second node makes the request for the lock being held by the first node. 4 . The method of claim 1 wherein a directory lock associated with the second entity prevents the second node from accessing the second modification made to the second entity by the first node. 5 . The method of claim 1 wherein each atomic transaction involves modifications to two or more entities of the data structure. 6 . The method of claim 1 wherein the first and second nodes of the cluster host a distributed filesystem, the data structure comprises a tree data structure holding a namespace of the filesystem, and the first and second entities comprise leaf pages of the tree data structure. 7 . A system comprising: a processor; and memory configured to store one or more sequences of instructions which, when executed by the processor, cause the processor to carry out the steps of: allowing a first node of a cluster to start a first atomic transaction involving modifications to a first entity and a second entity of a data structure by locking the first entity for a first modification associated with a first atomic transaction, but not locking the second entity for a second modification associated with first atomic transaction; generating, at the first node, a first undo record for the first modification to allow the first modification made to the first entity to be rolled back, the first undo record being maintained in memory only at the first node and not persisted; after the first modification to the first entity has been made by the first node, unlocking the first entity and locking the second entity for the second modification; generating, at the first node, a second undo record for the second modification to allow the second modification made to the second entity to be rolled back, the second undo record being maintained in memory only at the first node and not persisted; before the first atomic transaction is committed and when a lock being held by the first node for the first atomic transaction involving the second modification made to the second entity is requested by a second node for a second atomic transaction involving the second entity, triggering a persisting of the second undo record to a log of the first node, the second undo record corresponding to the second modification made to the second entity by the first node for the first atomic transaction and the second undo record now being persisted; revoking the lock on the second entity being held by the first node for the first atomic transaction; and providing the lock to the second node; upon a determination that the first node has crashed before the first atomic transaction could be committed, replaying the log having the second undo record and associated with the first node to undo the second modification made to the second entity by the first node for the first atomic transaction; and before the first atomic transaction is committed, exposing, to the second node, the first entity comprising the first modification made by the first node. 8 . The system of claim 7 wherein the data structure comprises a B+ tree data structure and the entities comprise leaf pages of the B+ tree data structure. 9 . The system of claim 7 wherein the second undo record for the second modification made to the second entity by the first node is not persisted to the log until the second node makes the request for the lock being held by the first node. 10 . The system of claim 7 wherein a directory lock associated with the second entity prevents the second node from accessing the second modification made to the second entity by the first node. 11 . The system of claim 7 wherein each atomic transaction involves modifications to two or more entities of the data structure. 12 . A computer program product, comprising a non-transitory computer-readable medium having a computer-readable program code embodied therein, the computer-readable program code adapted to be executed by one or more processors to implement a method comprising: allowing a first node of a cluster to start a first atomic transaction involving modifications to a first entity and a second entity of a data structure by locking the first entity for a first modification associated with a first atomic transaction, but not locking the second entity for a second modification associated with first atomic transaction; generating, at the first node, a first undo record for the first modification to allow the first modification made to the first entity to be rolled back, the first undo record being maintained in memory only at the first node and not persisted; after the first modification to the first entity has been made by the first node, unlocking the first entity and locking the second entity for the second modification; generating, at the first node, a second undo record for the second modification to allow the second modification made to the second entity to be rolled back, the second undo record being maintained in memory only at the first node and not persisted; before the first atomic transaction is committed and when a lock being held by the first node for the first
for networked environments · CPC title
Trees, e.g. B+trees · CPC title
Database-specific techniques · CPC title
in transactions (updating of structured data in databases G06F16/23) · CPC title
Transactional file systems · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.