发明名称 Systems and methods for mutations and operational transforms in a collaborative spreadsheet environment
摘要 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.
申请公布号 US9460073(B2) 申请公布日期 2016.10.04
申请号 US201313779379 申请日期 2013.02.27
申请人 Google Inc. 发明人 Danziger Joshua Ari;Haldimann Niklaus;Karve Amod;Lloyd Zachary Erik;Fazal Asim
分类号 G06F17/00;G06F17/24;G06Q10/10 主分类号 G06F17/00
代理机构 Ropes & Gray LLP 代理人 Ropes & Gray LLP
主权项 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.
地址 Mountain View CA US