×

Systems and methods for mutations and operational transforms in a collaborative spreadsheet environment

  • US 9,460,073 B2
  • Filed: 02/27/2013
  • Issued: 10/04/2016
  • Est. Priority Date: 02/27/2013
  • Status: Active Grant
First Claim
Patent Images

1. A method for updating a spreadsheet based on user inputs, the method comprising:

  • receiving a first user input specifying an analytic function to be applied to data of the spreadsheet;

    receiving a second user input specifying a data edit operation to be performed on the spreadsheet;

    in response to determining that the first user input specifies the analytic function, assigning the first user input to a calculation thread;

    in response to determining that the second user input lacks the analytic function, assigning the second user input to a UI thread;

    processing the first user input in the calculation thread, the processing comprising applying the analytic function to the data of the spreadsheet to produce first mutation results;

    while processing the first user input in the calculation thread, processing the second user input in the UI thread to produce second mutation results, and applying the second mutation results to the spreadsheet to update the spreadsheet;

    storing the first mutation results and second mutation results in a pending queue, wherein the pending queue contains mutation results made at a client device by a user, and the pending queue includes (1) mutation results that have not been sent to a cloud computing system to be applied to other client devices and (2) mutation results that have been sent to the cloud computing system to be applied to other client devices;

    in response to a determination that the processing of the first user input is complete, performing a first operational transform on the first mutation results based on the second mutation results to obtain modified first mutation results;

    storing third mutation results to the spreadsheet in a collaborator queue, wherein the collaborator queue contains mutations received at the client device from the cloud computing system;

    identifying a conflict between the modified first mutation results and the third mutation results;

    performing a second operational transform to resolve the conflict between the modified first mutation results and the third mutation results to obtain further modified first mutation results; and

    applying the further modified first mutation results to the spreadsheet.

View all claims
  • 2 Assignments
Timeline View
Assignment View
    ×
    ×