Distributed Transaction Lock Revocation With Undo Logging
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current techniques for handling distributed transactions in large-scale distributed filesystems are inefficient, leading to performance issues due to conflicts arising when multiple nodes or clients concurrently access or modify shared resources.
Innovation Solution
Implementing a distributed lock manager to manage locks on namespace entities, using partial locking of data structures and undo logs to ensure atomicity and integrity, while allowing concurrent operations by logging undo records to a replay log for crash recovery.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If current coordination techniques are used for distributed transactions, then data consistency is maintained, but filesystem performance deteriorates due to conflicts when multiple nodes access shared resources concurrently
Solution Approach 1:
The patent segments the locking mechanism by implementing partial locking of data structures, where only specific portions of the namespace are locked during transactions rather than the entire namespace. This allows other nodes to access unrelated resources concurrently, improving filesystem performance while maintaining data consistency through targeted locking of critical sections.
Solution Approach 2:
The patent introduces undo logs as an intermediary mechanism that mediates between transaction operations and permanent storage. By logging undo records before making modifications and replaying them upon conflicts or crashes, the system enables optimistic concurrency control, allowing multiple nodes to access shared resources simultaneously while maintaining data consistency through the intermediary log layer.
2Productivity
If locks are held during entire transactions to ensure atomicity, then data integrity is maintained, but system throughput decreases due to lock contention
Solution Approach 1:
The patent applies preliminary action by creating undo log records before executing transaction modifications. This allows the system to prepare for potential rollbacks in advance, enabling faster transaction execution without holding locks for the entire duration. The preliminary logging action separates the modification preparation from the actual storage update, improving throughput while maintaining atomicity through the ability to replay or undo operations.
Solution Approach 2:
The patent changes the parameter of lock duration by implementing short-lived locks only for critical sections rather than holding locks throughout the entire transaction. Combined with undo logging, this parameter change allows most of the transaction to proceed without lock contention, improving system throughput while maintaining atomicity through the log-based rollback mechanism for the brief locked periods.
3Reliability
If full locking is implemented for crash safety, then atomicity is ensured, but concurrency is reduced leading to performance issues
Solution Approach 1:
The patent uses undo logs as an intermediary that provides crash safety without requiring full locking. By logging operations before execution and maintaining the ability to replay or undo them, the system achieves atomicity and crash recovery guarantees while allowing concurrent access to the actual data structures. The intermediary log layer decouples the concurrency control from the data access, enabling high concurrency with maintained reliability.
Solution Approach 2:
The patent applies partial action by implementing partial locking of only critical data structures rather than locking the entire namespace. Combined with undo logging for the partial operations, this provides sufficient crash safety for the locked portions while allowing concurrent access to unlocked portions, thereby maintaining both reliability and concurrency.
Data Source
AI summary
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.


