Cylinder ID Index Allocation in Multi-Node Storage Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Database systems face issues with duplicate cylinder ID indexes when starting up with missing storage components, leading to corruption and the need to keep affected AMPs offline to prevent allocation errors, as existing solutions like segregating cylinder IDs or maintaining mirror maps are inefficient or require significant memory and disk space.

Innovation Solution

A data structure and set of procedures that track the highest in-use cylinder index, generation number, and device status hash to prevent index reuse, allowing safe allocation of new cylinder IDs during startup and handling changes in missing devices, without the need for a mirrored map or excessive memory/disk space.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the system keeps AMPs offline to prevent duplicate cylinder ID allocation, then data integrity is maintained, but system availability and productivity deteriorate

Engineering Contradiction:
Improvedata integrityVSAvoidsystem availability
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system performs preliminary actions by maintaining a persistent record of the highest cylinder ID index seen across all AMPs during previous operations. When AMPs restart after a crash, they consult this pre-established record to determine safe allocation ranges, preventing duplicate cylinder ID assignment before the problem can occur. This allows AMPs to come online without waiting for complex coordination protocols.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary mechanism - a persistent file or data structure that stores the highest observed cylinder ID index - that mediates between multiple AMPs to coordinate cylinder ID allocation without requiring them to communicate directly or wait for each other. This intermediary record enables independent AMP startup while maintaining global consistency.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If mirror maps are maintained to track cylinder IDs, then duplicate allocation is prevented, but memory and disk space consumption increases

Engineering Contradiction:
Improveallocation accuracyVSAvoidmemory and disk space
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent extracts only the essential information needed for safe allocation - specifically, the highest cylinder ID index observed - from the complete cylinder ID mapping data. Instead of maintaining or copying entire map structures, the system stores just this critical scalar value in a persistent record, dramatically reducing memory and disk space requirements while still preventing duplicate allocations.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system uses a lightweight, minimal persistent record structure that consumes minimal storage resources compared to full mirror maps. This disposable-like approach maintains only the necessary metadata (highest index seen) rather than comprehensive mapping information, achieving the protection goal with minimal resource overhead.

Inventive Principle:
Principle #27Cheap short-living objects (Disposable)

Data Source

PatentUS9720613B2Method and system for preventing reuse of cylinder ID indexes in a computer system with missing storage drives
Publication Date: 2017.08.01 TERADATA US INC
  • US9720613B2 patent drawing
  • US9720613B2 patent drawing
  • US9720613B2 patent drawing

AI summary

A system and method for allocating storage devices within a multi-node data storage system. The system maintains a data structure including a generation number indicating an incarnation of the data structure, a highest cylinder ID index value observed to be in use within the data storage system, and a safe index value indicating a lowest cylinder ID index value for use when allocating a new cylinder index. Following receipt of an allocation request, the system assigns a cylinder ID index to the allocation request, the cylinder ID index being greater than the safe index value. The assigned cylinder ID index is compared to the highest cylinder ID index value observed to be in use within said data storage system, and when the cylinder ID index is greater than the highest cylinder ID index value, increments the generation number and highest cylinder ID index value maintained within the data structure.