Accelerator Hash Bucket Lock Management
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing locking mechanisms in modern computer systems, particularly in distributed database management systems, face inefficiencies and performance degradation due to concurrent access requirements, leading to increased latency and scalability hurdles.
Innovation Solution
A method and system that utilize a hash function to identify a hash bucket in shared memory, where a request to lock a resource is either fulfilled by an accelerator if the bucket is empty or forwarded to a master lock monitor if occupied, optimizing lock management and reducing contention.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a centralized locking mechanism is used to ensure data integrity, then reliability is improved, but latency increases and scalability deteriorates
Solution Approach 1:
The locking mechanism is segmented into two paths: a fast path for uncontended locks that bypasses the master lock monitor and uses local hash bucket checks, and a slow path for contended locks that goes through the master lock monitor. This segmentation allows most lock operations to complete quickly while maintaining centralized coordination when needed.
Solution Approach 2:
An accelerator component is introduced as an intermediary between clients and the master lock monitor. The accelerator handles uncontended lock requests locally using hash buckets in shared memory, acting as a mediator that filters out simple requests before they reach the master lock monitor, thereby reducing latency for the majority of operations.
2Reliability
If a centralized locking mechanism is used to control resource access, then reliability is improved, but device complexity increases
Solution Approach 1:
The locking system is divided into multiple components with distinct responsibilities: the master lock monitor for centralized coordination, accelerators for local fast-path handling, and hash buckets for quick lookups. This segmentation distributes complexity across components rather than concentrating it in a single monolithic locking mechanism.
Solution Approach 2:
The accelerator enables lock requests to serve themselves by checking hash buckets locally without requiring master lock monitor intervention for uncontended cases. This self-service capability reduces the complexity of centralized coordination by handling routine operations autonomously.
3Reliability
If traditional locking mechanisms are used to manage concurrent access, then data integrity is maintained, but productivity decreases
Solution Approach 1:
The locking mechanism is segmented into fast-path and slow-path operations, allowing uncontended concurrent access to proceed rapidly through local hash bucket checks while contended access is properly coordinated. This enables high productivity for the majority of non-conflicting operations.
Solution Approach 2:
The accelerator acts as an intermediary that handles the bulk of lock requests locally, enabling efficient concurrent access without bottlenecking at the master lock monitor. This intermediary layer preserves data integrity while dramatically improving productivity for concurrent workloads.
Data Source
AI summary
A method for locking resources, including: receiving, by an accelerator, a first request from a first client to lock a first resource; evaluating, by a computer processor of a server, a hash function using an identifier of the first resource as an input to the hash function; identifying, by the computer processor and based on evaluating the hash function, a first hash bucket in a shared memory residing in a physical memory of the server; detecting that the first hash bucket is occupied; and sending the first request to a master lock monitor residing in a user space of the server based at least on detecting that the first hash bucket is occupied.


