Local Calculation and Private Views in Real-Time Spreadsheet Collaboration
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Real-time collaboration in spreadsheet applications faces challenges with accuracy and performance due to centralized calculations, which can be slow and lead to data inconsistencies, and users' inability to have unique views of data during collaborative editing.
Innovation Solution
Allowing clients to perform calculations locally and providing private views, with the option to perform calculations remotely if necessary, and persisting client views in the host machine to ensure data consistency and user-specific data filtering.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If calculations are performed centrally on the server, then data consistency is maintained, but calculation speed and performance deteriorate
Solution Approach 1:
The patent segments the calculation process into two parts: deterministic calculations that produce consistent results are performed locally on client devices, while only the calculation results and data updates are synchronized to the server. This segmentation allows fast local processing while maintaining centralized data consistency for the portions that require it.
Solution Approach 2:
The patent applies local quality by allowing different calculation strategies for different parts of the spreadsheet. Specifically, calculations that are deterministic and produce consistent results are performed locally on each client device, while calculations that may produce different results are handled centrally. This enables optimized performance for specific calculation types without compromising overall data consistency.
2Reliability
If all users see the same data in real time, then collaboration consistency is improved, but users cannot apply unique filters or views to their own data
Solution Approach 1:
The patent extracts the view-specific filtering and sorting logic from the core data model. Each user's filters, sorts, and other view modifications are stored as separate metadata associated with their specific view, rather than being part of the underlying data itself. This allows users to have personalized views while the base data remains consistent for all collaborators.
Solution Approach 2:
The patent adds another dimension to the data model by separating the base data layer from the view layer. The base data layer maintains consistency for all users, while the view layer allows each user to have their own filters, sorts, and display preferences. This dimensional separation enables both collaboration consistency and personalized views to coexist.
3Measurement precision
If complex calculations are performed centrally, then accuracy is maintained, but time consumption and latency increase
Solution Approach 1:
The patent implements dynamic calculation strategy selection based on the characteristics of each calculation. The system automatically determines whether a calculation is deterministic and should be performed locally, or if it requires centralized processing. This dynamic approach allows the system to optimize for speed when accuracy can be maintained locally, and switch to centralized processing only when necessary.
Solution Approach 2:
The patent changes the parameter of calculation location from a fixed central server to a flexible distribution between client devices and server. By analyzing calculation characteristics, the system dynamically changes where calculations are performed, moving deterministic calculations to the client side to reduce latency while maintaining accuracy through selective synchronization of results.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Techniques for performing a process during a real time collaboration by multiple users or clients on a spreadsheet file are disclosed herein which may permit calculations to be performed locally by at least one of the clients. By doing so, increases in performance are realized since only data updates need to be provided to the host machine. As such, a determination is preferably made whether calculations performed locally can result in different data. If conflicting data is a possibility, then the calculations for the spreadsheet file will usually be performed remotely by a host machine. If not, then each client capable of doing so will perform the calculations locally and then provide only the updated data to the host machine. The determination of whether to perform the calculations locally or not may also be made dynamically, such as when one or more new formulas are added to the spreadsheet file.