Content-Addressable Data Store for Undo Redo State Switching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing content creation applications require manual saving of electronic content, leading to inconvenient user experiences, potential loss of changes during system crashes, and burdensome development processes due to limited undo/redo capabilities and the need for manual programming of editing features.

Innovation Solution

Implementing a content-addressable data store that automatically stores different states of electronic content using compact identifiers, allowing for efficient storage and retrieval of multiple states without duplicating identical items, enabling seamless undo, redo, and navigation through all editing states without manual saves.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If complete copies of content are stored after every change, then undo/redo functionality is improved, but data storage requirements increase significantly

Engineering Contradiction:
Improveundo/redo functionalityVSAvoiddata storage requirements
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The content is divided into discrete objects (rectangles, circles, text, etc.) that can be independently stored and referenced. Each object is stored once in the content-addressable store, and multiple states reference these objects through identifiers rather than duplicating the actual object data.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Instead of storing complete copies of content for each state, the system stores compact identifiers (hashes) that reference the actual content objects. These identifiers are extremely space-efficient compared to full content copies, yet enable complete reconstruction of any state.

Inventive Principle:
Principle #26Copying

2Quantity of substance

If temporary memory is used to store incremental changes, then data storage efficiency is improved, but changes are lost during system crashes

Engineering Contradiction:
Improvedata storage efficiencyVSAvoiddata persistence
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The system automatically saves each state to persistent storage immediately after it is created, rather than waiting for a system crash or requiring manual save actions. This preliminary automatic persistence ensures that no changes are lost and eliminates the need for users to manually save their work.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If manual programming of undo functions is required for each editing feature, then customization flexibility is improved, but development complexity increases

Engineering Contradiction:
Improvecustomization flexibilityVSAvoiddevelopment complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The content-addressable data store provides universal undo/redo functionality that works for all editing operations without requiring custom implementation. The same underlying mechanism (storing state identifiers in a content-addressable store) handles diverse operations like adding shapes, text, images, or any other content type, eliminating the need for separate undo logic for each feature.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The system automatically manages the complexity of undo/redo functionality through the content-addressable store mechanism. Developers simply need to store state identifiers, and the system automatically handles the complex tasks of comparing states, identifying changes, and reconstructing previous states, freeing developers from manually programming undo logic.

Inventive Principle:
Principle #25Self-service

4Speed

If identical items are stored in multiple states, then state retrieval speed is improved, but data redundancy increases

Engineering Contradiction:
Improvestate retrieval speedVSAvoiddata redundancy
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The system stores compact identifiers rather than full copies of identical content objects. Each unique object is stored once in the content-addressable store, and multiple states reference it through its identifier. This eliminates data redundancy while enabling fast state retrieval through direct identifier lookup.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The content-addressable store serves multiple functions simultaneously: it stores unique content objects once, provides fast retrieval through hash-based indexing, enables efficient state comparison by comparing identifiers rather than full content, and supports unlimited state history without increasing storage requirements.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS10402481B2Undo, redo, and state switching using content-addressable data structures
Publication Date: 2019.09.03 ADOBE INC
  • US10402481B2 patent drawing
  • US10402481B2 patent drawing
  • US10402481B2 patent drawing

AI summary

Systems and methods for switching to different states of electronic content being developed in a content creation application. This involves storing different states of the electronic content using a content-addressable data store, where individual states are represented by identifiers that identify items of respective states stored in the content-addressable data store. Identical items that are included in multiple states are stored once in the content-addressable data store and referenced by common identifiers. Input is received to change the electronic content to a selected state of the different states and the electronic content is displayed in the selected state based on identifiers for the selected state. In this way, undo, redo, and other commands to switch to different states of electronic content being developed are provided.