SYSTEMS AND METHODS FOR MUTATIONS AND OPERATIONAL TRANSFORMS IN A COLLABORATIVE SPREADSHEET ENVIRONMENT
2 Assignments
0 Petitions
Accused Products
Abstract
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.
-
Citations
31 Claims
-
1-10. -10. (canceled)
-
11. A method for updating a spreadsheet based on user inputs, the method comprising:
-
receiving a first mutation of a first priority from a first source location specifying a function to be applied to data of the spreadsheet, the first mutation comprising one or more source-row-to-destination-row mappings; receiving a second mutation of a second priority from a second source location specifying a data edit mutation to be applied to the spreadsheet, wherein the second priority is higher than the first priority; applying the second mutation to the spreadsheet; performing an operational transform on the first mutation based on the second mutation to generate a modified first mutation; and applying the modified first mutation to the spreadsheet. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A computing system configured to update a spreadsheet based on user inputs, the computing system comprising:
-
a network interface configured to; receive a first mutation of a first priority from a first source location specifying a function to be applied to data of the spreadsheet, the first mutation comprising one or more source-row-to-destination-row-mappings; and receive a second mutation of a second priority from a second source location specifying a data edit mutation to be applied to the spreadsheet, wherein the second priority is higher than the first priority; a processor configured to; apply the second mutation to the spreadsheet; perform an operational transform on the first mutation based on the second mutation to generate a modified first mutation; and apply the modified first mutation to the spreadsheet. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30)
-
-
31-44. -44. (canceled)
Specification