Operational Transform Conflict Resolution in Collaborative Spreadsheets

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In collaborative spreadsheet environments, conflicts arise when multiple users enter edit commands that overlap or provide contradictory instructions, leading to inconsistencies in spreadsheet edits.

Innovation Solution

The implementation of operational transforms and mutation queuing systems at both client and server levels, where mutations are processed asynchronously and conflicts are resolved by modifying results from calculation threads based on UI thread outputs, ensuring consistent spreadsheet updates.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple collaborators edit the spreadsheet simultaneously, then productivity and collaboration capability are improved, but conflicts among edit commands arise leading to inconsistencies

Engineering Contradiction:
Improvecollaborative editing capabilityVSAvoidconsistency of spreadsheet edits
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system performs preliminary actions by queuing mutations in a specific order before they are applied to the spreadsheet. The operational transform mechanism pre-processes conflicting mutations by transforming them into a consistent sequence, preventing inconsistencies before they occur. This is evident in the background section which describes how conflicts arise when edits overlap and need to be resolved through transformation.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The operational transform acts as an intermediary mechanism between conflicting edit commands from different collaborators. It mediates the conflicts by transforming mutations into a consistent execution order, ensuring that all collaborators see the same final state. The patent describes this as a mechanism that resolves conflicts among mutations from multiple sources.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If computationally intensive analytic functions are processed synchronously in the UI thread, then calculation accuracy is ensured, but system responsiveness and user experience deteriorate

Engineering Contradiction:
Improvecalculation accuracyVSAvoidsystem responsiveness
Core Design Contradiction:
Measurement precisionVSEase of operation

Solution Approach 1:

The system segments the processing of mutations by separating computationally intensive analytic function mutations from regular UI mutations. Analytic mutations are processed in a dedicated calculation thread, while UI mutations are handled in the UI thread. This segmentation allows heavy calculations to proceed without blocking the user interface, maintaining both accuracy and responsiveness.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system dynamically adjusts the processing approach based on the type of mutation. Regular UI mutations are processed synchronously in the UI thread for immediate feedback, while computationally intensive analytic mutations are offloaded to an asynchronous calculation thread. This dynamic processing strategy optimizes both responsiveness and calculation accuracy.

Inventive Principle:
Principle #15Dynamics

3Speed

If mutations are applied immediately without queuing, then real-time updates are achieved, but conflict resolution becomes complex and inconsistent

Engineering Contradiction:
Improveupdate speedVSAvoidconflict resolution complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The system performs preliminary ordering of mutations in a queue before they are applied to the spreadsheet. This preliminary organization of mutations in a specific sequence simplifies the conflict resolution process, as the operational transform only needs to adjust the ordering rather than handle arbitrary conflicts. The patent describes this queuing mechanism as a way to manage mutations systematically.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system maintains copies of mutations in queues at both the client and server sides, allowing for independent processing and transformation. The operational transform works on copies of the mutation queue, transforming them into a consistent order before application. This copying approach enables real-time updates while simplifying conflict resolution through systematic transformation.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS9720897B2Systems and methods for mutations and operational transforms in a collaborative spreadsheet environment
Publication Date: 2017.08.01 GOOGLE LLC
  • US9720897B2 patent drawing
  • US9720897B2 patent drawing
  • US9720897B2 patent drawing

AI summary

Mutations representing spreadsheet edit operations are received at a server from client computers of collaborators and also at a collaborator's client computer from other collaborators and the server. Different mutations may conflict, i.e., provide contradictory instructions on how a spreadsheet is to be edited. Techniques for representing sort operations, cut-and-paste operations, and operations to change cell properties as mutations, and operational transform techniques that can be used to resolve conflicts between such mutations, are disclosed herein. Further disclosed herein are techniques for identifying and processing computationally intensive types of mutations in a calculation thread which operates asynchronously with respect to a UI thread at a collaborator's client computer. The processing may include performing an operational transform on results of the calculation thread based on results obtained in the UI thread.