Schema Versioning in Distributed Storage Partitions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In distributed storage systems, modifying data formats, protocols, or fundamental logic across partitions is complex and often requires instantaneous updates, leading to uptime issues and potential service level agreement violations due to the need for simultaneous changes across all partitions.

Innovation Solution

A distributed storage system with a management controller that updates schema definitions across partitions, allowing each partition to maintain state data and dynamically adapt to new schema versions while supporting incremental deployment and per-partition upgrades, enabling gradual and safe schema changes without affecting user uptime.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If schema updates are performed across all partitions simultaneously, then data consistency is maintained, but system availability deteriorates due to downtime

Engineering Contradiction:
Improvedata consistencyVSAvoidsystem availability
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system divides the schema update process into partition-level segments, allowing each partition to be updated independently rather than requiring simultaneous updates across all partitions. This enables progressive schema evolution where different partitions can be at different schema versions, maintaining system availability while eventually achieving consistency across all partitions.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system implements dynamic schema versioning where partitions can transition between schema versions flexibly. The table controller dynamically manages schema evolution by allowing reads and writes to occur at different schema versions during transition periods, enabling continuous operation while schema changes propagate through the system.

Inventive Principle:
Principle #15Dynamics

2Productivity

If schema updates are delayed to maintain availability, then system availability is maintained, but data consistency deteriorates

Engineering Contradiction:
Improvesystem availabilityVSAvoiddata consistency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system implements feedback mechanisms where the table controller monitors schema version distribution across partitions and dynamically adjusts the update propagation. When most partitions have adopted a new schema version, the system feedback-triggers final consistency enforcement, ensuring data consistency is achieved at the optimal moment without compromising availability.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system performs preliminary schema validation and preparation actions before full propagation. Schema updates are prepared and staged, allowing the system to maintain availability during preparation while ensuring consistency requirements are validated in advance before final deployment across all partitions.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If all partitions are updated at once, then schema consistency is achieved, but complexity of deployment increases

Engineering Contradiction:
Improveschema consistencyVSAvoiddeployment complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The deployment process is segmented into manageable partition-level operations rather than a monolithic system-wide update. Each partition can be updated independently with automated rollback capabilities, significantly reducing deployment complexity compared to coordinated simultaneous updates across all partitions.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system implements self-service automated schema propagation where the table controller automatically manages the schema update process across partitions without requiring manual intervention. The system autonomously handles version tracking, propagation timing, and consistency enforcement, reducing operational complexity.

Inventive Principle:
Principle #25Self-service

4Device complexity

If incremental schema updates are implemented, then deployment complexity is reduced, but measurement of schema state becomes more difficult

Engineering Contradiction:
Improvedeployment complexityVSAvoidschema state tracking
Core Design Contradiction:
Device complexityVSDifficulty of detecting and measuring

Solution Approach 1:

The system implements comprehensive feedback mechanisms that automatically track and report schema version status across all partitions. The table controller maintains real-time visibility into which partitions are at which schema versions, providing automated monitoring and reporting that simplifies state measurement despite the distributed nature of incremental updates.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system uses visual metaphors analogous to color changes to represent different schema versions and states. Different schema versions are clearly distinguished and tracked, making it easy to identify the current state of each partition and the overall progression of schema evolution across the system.

Inventive Principle:
Principle #32Color changes

Data Source

PatentUS12099481B2Online schema change of range-partitioned index in a distributed storage system
Publication Date: 2024.09.24 MICROSOFT TECHNOLOGY LICENSING LLC
  • US12099481B2 patent drawing
  • US12099481B2 patent drawing
  • US12099481B2 patent drawing

AI summary

A distributed storage system includes table controllers collectively storing partitions of a logical table having multiple rows. For each of the partitions, a corresponding table controller stores a subset of the rows of the logical table across individual pages. A management controller updates a schema of the logical table from a first to a second schema definition by, for each of the partitions, sending an update command indicating the second schema definition to the corresponding table controller. The first table controller corresponds to a first partition that includes a first subset of the rows. The first table controller, prior to receiving the update command, includes an identifier of the first schema definition within each page of data for the first subset. Subsequent to receiving the update command, the first table controller, when writing each new page of data for the first subset, includes an identifier of the second schema definition.