Network Lock Server for Shared File Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing shared file systems face challenges in scaling lock management across multiple servers, as traditional SCSI-2 reserve/release primitives lock entire storage volumes, leading to inefficiencies and limitations in concurrent access.

Innovation Solution

A network-based method for managing locks in a shared file system that dynamically identifies and designates a server for lock management without configuration, allowing any host to serve as a lock server and switching to alternative locking techniques in case of network failures, thereby minimizing the use of SCSI primitives and ensuring efficient IO operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If SCSI-2 reserve/release primitives are used to provide server exclusive access to logical storage volume, then file access control is achieved, but the entire logical storage volume is locked and IO operations are not permitted

Engineering Contradiction:
Improvefile access controlVSAvoidIO operations
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the locking mechanism from the entire storage volume to specific file system resources. Instead of using SCSI-2 reserve primitives that lock the whole volume, the invention implements file-specific locks that allow concurrent IO operations on different files while maintaining exclusive access to individual locked files. This segmentation enables multiple servers to perform IO operations simultaneously on different resources.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The invention applies local quality by making lock granularity specific to individual files or file system resources rather than applying a uniform lock across the entire storage volume. Each file can have its own lock state, allowing different access patterns on different files simultaneously - some files locked for exclusive access while others remain accessible for read operations.

Inventive Principle:
Principle #3Local quality

2Productivity

If disk locks are introduced to protect specific resources instead of entire logical storage volume, then IO operations can proceed concurrently, but scaling of the locking scheme remains a challenge

Engineering Contradiction:
Improveconcurrent IO operationsVSAvoidlocking scheme scaling
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements a universal locking mechanism that can handle multiple file system resources through a single centralized lock server. The lock server provides multi-functional capabilities including acquiring locks, releasing locks, and managing lock states for various file system resources. This universal approach simplifies scaling compared to implementing separate locking mechanisms for each resource.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The invention introduces a lock server as an intermediary component that mediates between multiple servers seeking access to file system resources. The lock server centralizes lock management, receiving lock requests from various servers, managing the locking state, and coordinating access. This intermediary approach simplifies the locking scheme's scaling by providing a single point of control rather than requiring complex peer-to-peer locking protocols.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Device complexity

If a centralized lock server is implemented to manage file locks, then lock management becomes scalable, but network communication dependencies are introduced

Engineering Contradiction:
Improvelock management scalabilityVSAvoidnetwork communication dependency
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The patent implements beforehand cushioning by providing alternative locking techniques that do not rely on network communication with the lock server. When network communication fails or the lock server becomes unavailable, servers can fall back to local locking mechanisms such as SCSI-2 reserve primitives or other non-network-dependent methods. This ensures continuous operation and maintains reliability even when the centralized lock server is inaccessible.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

4Ease of manufacture

If any host can serve as lock server without configuration, then system deployment is simplified, but host identification and selection mechanisms are required

Engineering Contradiction:
Improvesystem deploymentVSAvoidhost identification mechanism
Core Design Contradiction:
Ease of manufactureVSDevice complexity

Solution Approach 1:

The patent implements self-service by enabling any host to automatically become a lock server without requiring manual configuration. When a host starts the file system, it automatically assumes lock server responsibilities and begins managing locks for other hosts. This self-service approach simplifies deployment as no administrative configuration is needed - the system automatically distributes lock server functionality across available hosts.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The invention applies dynamics by allowing the lock server role to be dynamic rather than static. Any host can become a lock server at any time based on system conditions, and the lock server function can be transferred between hosts as needed. This dynamic assignment provides flexibility and load distribution while maintaining ease of deployment through automatic role assignment.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9026510B2Configuration-less network locking infrastructure for shared file systems
Publication Date: 2015.05.05 VMWARE INC
  • US9026510B2 patent drawing
  • US9026510B2 patent drawing
  • US9026510B2 patent drawing

AI summary

A network-based method for managing locks in a shared file system (SFS) for a group of hosts that does not require any configuration to identify a server for managing locks for the SFS. Each host in the group carries out the steps of checking a predetermined storage location to determine whether there is a host ID written in the predetermined location. If there is no host ID written in the predetermined location, the first host to notice this condition writes its host ID in the predetermined location to identify itself as the server for managing locks. If there is a host ID written in the predetermined location, the host ID of the server for managing locks is maintained in local memory. When the host needs to perform IO operations on a file of the SFS, it communicates with the server for managing locks over the network using the host ID of the server for managing locks to obtain a lock to the file.