Operational Transform Conflict Resolution in Collaborative Spreadsheets
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
3Speed
If mutations are applied immediately without queuing, then real-time updates are achieved, but conflict resolution becomes complex and inconsistent
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.
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.
Data Source
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.


