Directory-Level Locking for Distributed Storage Bandwidth
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In distributed or shared storage systems, the frequent granting and releasing of locks for resource access leads to unnecessary network bandwidth and computational resource consumption, especially when concurrent access requests are rare, and existing distributed lock managers struggle with multiprotocol environments where exhaustive validations are needed to resolve competing requests.
Innovation Solution
Implementing a multiprotocol lock manager that awards locks at the highest-level directory in the hierarchy without conflicting locks, allowing revocable privileges and protocol-specific validation logic to manage access conflicts, reducing the need for multiple lock requests and improving performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a lock request is sent to the DLM for every resource access, then access control reliability is improved, but network bandwidth consumption increases and performance deteriorates
Solution Approach 1:
The patent merges multiple resource locks into a single directory-level lock. When a client accesses a resource, the DLM grants a lock on the highest-level directory containing that resource, rather than requiring separate locks for each resource. This consolidation reduces the number of lock requests and messages exchanged between clients and the DLM, thereby reducing network bandwidth consumption while maintaining access control reliability through the hierarchical lock structure.
Solution Approach 2:
The patent implements preliminary action by granting directory-level locks in advance before specific resource access is needed. The DLM proactively establishes locks at the directory level that cover multiple potential resources, eliminating the need for repeated lock requests for individual resources within that directory. This preliminary locking approach reduces subsequent messaging overhead while ensuring access control is already in place.
2Device complexity
If a generic DLM is used to manage locks across multiple protocols, then system simplicity is improved, but the capability to resolve multiprotocol access conflicts deteriorates
Solution Approach 1:
The patent implements universality by designing the DLM to handle multiple network protocols (NFS, SMB, etc.) through a unified directory-level locking mechanism. The same lock management logic applies across different protocols, providing a universal solution that maintains system simplicity while being adaptable to various protocol requirements. The hierarchical directory structure serves as a protocol-agnostic framework for resource access control.
Solution Approach 2:
The patent introduces the directory structure as an intermediary layer between the DLM and protocol-specific resource access. This intermediary abstracts the complexity of multiprotocol conflict resolution, allowing the DLM to manage locks at the directory level without needing to understand protocol-specific details. The directory acts as a mediator that translates diverse protocol requests into a unified lock management framework.
3Measurement precision
If locks are granted at the file level for each resource access, then access precision is improved, but the number of lock requests increases and performance deteriorates
Solution Approach 1:
The patent transitions from file-level locking to directory-level locking, moving up one dimension in the hierarchical file system structure. This dimensional change allows a single lock to cover multiple files and resources within the directory, reducing the total number of lock requests. The hierarchical directory structure provides the dimensional framework that enables this escalation from fine-grained file locks to coarser-grained directory locks, improving performance while maintaining adequate access control precision.
Data Source
AI summary
A client requests access to a resource (e.g., a file) via a node of a storage system. The resource is stored in a directory structure. A directory in the directory structure that includes the resource and that does not have any locks that conflict with the requested access to the resource is identified and selected. A revocable access privilege (e.g., a lock) on the selected directory is awarded to the node accessed by the client, and a directory-to-node association is established. Another association between the requested resource and the node is also established. If there is a subsequent request for the resource or for another resource within that directory, then a revoke notice for the directory access privilege is sent to the node.


