Programmable Logic for Dynamically Typed Storage Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Dynamically typed storage systems face challenges in maintaining type consistency and predictability as new types are introduced, leading to potential violations of existing type logic and constraints, which can impact application reliability and stability.

Innovation Solution

An extended type system is introduced that allows type designers to define and enforce logic and constraints, enabling applications to function correctly even when encountering extended types, by utilizing metadata and run-time logic to restrict operations and ensure compatibility, thus preventing inconsistencies.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If types are introduced dynamically at any time, then adaptability and versatility of the storage system is improved, but type consistency and predictability deteriorate

Engineering Contradiction:
Improvetype extensibilityVSAvoidtype consistency
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent applies preliminary action by requiring type designers to pre-declare compatibility promises when defining new types. The type system checks these promises before allowing type extensions, ensuring that new types maintain consistency with existing types. This preventive mechanism allows dynamic type introduction while preserving reliability through advance verification.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements feedback through a verification mechanism that checks whether new type definitions satisfy compatibility promises with existing types. The system provides feedback to type designers about whether their new types are compatible with ancestral types, and enforces this compatibility to maintain type consistency across the storage system.

Inventive Principle:
Principle #23Feedback

2Reliability

If type logic and constraints are enforced strictly, then type consistency and reliability are improved, but ease of operation and flexibility deteriorate

Engineering Contradiction:
Improvetype consistencyVSAvoidoperation flexibility
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent applies local quality by allowing different levels of strictness for different type operations. The system enforces compatibility promises for certain critical operations while allowing greater flexibility for others. This selective enforcement maintains reliability where needed while preserving ease of operation for permissible modifications.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent implements dynamics by making the enforcement of type constraints adaptive rather than static. The system dynamically adjusts the strictness of constraint enforcement based on the specific operation being performed and the type hierarchy involved, allowing flexible operations where compatibility promises are satisfied while maintaining strictness where consistency is critical.

Inventive Principle:
Principle #15Dynamics

3Ease of manufacture

If applications are written without implementing logic for all possible types, then ease of manufacture and development speed are improved, but reliability and type consistency deteriorate

Engineering Contradiction:
Improveapplication development speedVSAvoidapplication stability
Core Design Contradiction:
Ease of manufactureVSReliability

Solution Approach 1:

The patent applies the intermediary principle by introducing a type system as a mediator between applications and data types. The type system automatically handles compatibility checking and constraint enforcement, freeing applications from the burden of implementing logic for all possible types. This intermediary maintains reliability by ensuring type consistency without requiring applications to write comprehensive type-handling code.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS7801926B2Programmable logic and constraints for a dynamically typed storage system
Publication Date: 2010.09.21 MICROSOFT TECHNOLOGY LICENSING LLC
  • US7801926B2 patent drawing
  • US7801926B2 patent drawing
  • US7801926B2 patent drawing

AI summary

Embodiments define a set of rules such that a type designer can express as part of a type's definition whether the type has extended the logic and/or constraints of its ancestral types in such a way that applications written against that ancestral type will continue to function correctly. Nonconformity can also be indicated and an embodiment can enforce limitations on a set of operations that can be performed on such instances when treated as their ancestral types. Applications can use standard interfaces to discover from embodiments whether such limitations can be in force for a particular instance and provide a user experience that accounts for those limitations. Embodiments can also provide mechanisms to enable type designers to limit a degree of extensibility for both types and/or Items.