Cache Metadata Locking with Family Identifiers for Active/Active Storage
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional methods for maintaining data consistency in active/active caches are inefficient for metadata pages due to the need for internode lock requests, especially in cache miss-heavy workloads, as metadata pages can belong to multiple extents, leading to increased latency and strain on the ICS infrastructure.
Innovation Solution
Implementing a family identifier locking mechanism that assigns unique identifiers to groups of related metadata elements, allowing for efficient locking and reducing internode lock requests by loading metadata pages into memory using family identifiers, and performing cache lookups when necessary.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If conventional page locking methods are used for metadata pages in active/active caches, then data consistency between nodes is maintained, but latency increases and the ICS infrastructure becomes strained due to multiple internode lock requests
Solution Approach 1:
The patent segments metadata pages into two categories: data-bearing metadata pages and non-data-bearing metadata pages. This segmentation allows different locking strategies to be applied to different types of metadata pages, reducing unnecessary internode lock requests for non-data-bearing pages while maintaining consistency for data-bearing pages.
Solution Approach 2:
The patent applies different locking mechanisms locally to different types of metadata pages. Data-bearing metadata pages use traditional internode locking through ICS, while non-data-bearing metadata pages use local locking without internode communication. This local quality approach optimizes performance for each specific metadata page type.
2Productivity
If ALUA extent locking is used to reduce internode lock requests, then performance improves for data pages, but metadata pages still require internode lock requests because they can belong to multiple extents
Solution Approach 1:
The patent segments the metadata page population into two distinct groups: data-bearing metadata pages that require internode coordination and non-data-bearing metadata pages that can be locked locally. This segmentation enables the system to avoid the complexity of extended extent locking for metadata while achieving similar performance benefits.
Solution Approach 2:
The patent changes the locking parameter from extent-based locking to page-type-based locking for metadata. By changing how metadata pages are categorized and locked (based on whether they contain data), the system achieves efficient locking without requiring the complex multi-extent tracking that ALUA provides for data pages.
3Reliability
If internode lock requests are sent for every metadata cache miss, then data consistency is ensured, but the ICS infrastructure becomes strained and latency increases
Solution Approach 1:
The patent extracts non-data-bearing metadata pages from the traditional internode locking process. These pages are locked locally without involving the ICS infrastructure, thereby reducing the strain on internode communication while maintaining sufficient consistency guarantees for pages that actually contain data.
Solution Approach 2:
The patent applies partial locking action by locking only the necessary subset of metadata pages (data-bearing pages) through internode communication, while using simpler local locking for the remaining pages. This partial action approach maintains consistency where needed while improving overall throughput.
Data Source
AI summary
A method, computer program product, and computing system for receiving a metadata input/output (IO) request on a first storage node of a storage system. The metadata IO request may be partitioned into a plurality of metadata pages. The plurality of metadata pages may include a plurality of logical metadata pages and a plurality of virtual metadata pages. A family identifier may be obtained for each logical metadata page. The family identifier is a unique identifier assigned to a group of related metadata elements that share data, and is stored in a family identifier locking table. At least one of the plurality of metadata pages may be locked from access by a second storage node using the family identifier. The metadata IO request may be processed on the plurality of metadata pages by loading the at least one of the plurality of metadata pages into a memory of the first storage node.


