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

US9720897B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9720897-B2
Application numberUS-201313915372-A
CountryUS
Kind codeB2
Filing dateJun 11, 2013
Priority dateFeb 27, 2013
Publication dateAug 1, 2017
Grant dateAug 1, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for transforming conflicting mutations from different client computers into a collaborative spreadsheet stored at a server, the method comprising: providing a display of the collaborative spreadsheet to a first client computer and a second client computer located remotely from the first client computer; receiving, at a server, a first mutation from the first client computer, the first mutation comprising a value of a first cell property of a cell in the collaborative spreadsheet, wherein the first mutation is processed in a UI thread; receiving, at the server, a second mutation from the second client computer, the second mutation comprising a value of a second cell property of the cell in the collaborative spreadsheet, wherein the second mutation is processed in the UI thread; receiving, at the server, a third mutation from the second client computer, the third mutation comprising a value of the second cell in the collaborative spreadsheet, wherein the third mutation is processed in a calculation thread; identifying, by the server, a common property field between the first mutation and the second mutation; performing, at the server, an operational transform on the first mutation, the second mutation and the third mutation to modify a value generated by the calculation thread from the third mutation based on changes resulted from the first and the second mutations and processed in the UI thread and generating a modified mutation by: determining that the first mutation and the second mutation each correspond to a merge mutation; and generating the modified mutation by merging non-conflicting subfields of the first mutation and the second mutation in response to the determination; generating an updated collaborative spreadsheet by updating a property of the cell in the collaborative spreadsheet to reflect the modified mutation, wherein the updated property is different from the common property field; and sending the modified mutation to the first client computer and the second client computer to reflect the updated property. 2. The method of claim 1 , wherein the common property field is selected from the group consisting of a cell background field, a cell border field, a text formatting field, a vertical alignment field, a wrap strategy field, and a number format field. 3. The method of claim 1 , wherein performing the operational transform based on the first mutation and the second mutation to generate a modified mutation comprises: selecting one of the first mutation and the second mutation as the modified mutation based on a policy in response to a determination that the first mutation and the second mutation each correspond to a replace mutation. 4. The method of claim 3 , wherein selecting one of the first mutation and the second mutation as the modified mutation based on the policy comprises determining whether the first mutation or the second mutation was received first. 5. The method of claim 3 , wherein performing an operational transform based on the first mutation and the second mutation to generate a modified mutation further comprises: selecting the first mutation as the modified mutation in response to a determination that the first mutation is a replace mutation and that the second mutation is a merge mutation. 6. A computing system configured to transforming conflicting mutations from different client computers into a collaborative spreadsheet based on user inputs, the computing system comprising: a network interface configured to: receive a first mutation from a first client computer, the first mutation comprising a value of a first cell property of a cell in the collaborative spreadsheet, wherein the first mutation is processed in a UI thread; receive a second mutation from a second client computer located remotely from the first client computer, the second mutation comprising a value of a second cell property of the cell in the collaborative spreadsheet, wherein the second mutation is processed in the UI thread; receive, at the server, a third mutation from the second client computer, the third mutation comprises a value of the second cell in the collaborative spreadsheet, wherein the third mutation is processed in a calculation thread; and a processor at a server configured to: provide a display of the collaborative spreadsheet to the first client computer and the second client computer; identifying, by the server, a common property field between the first mutation and the second mutation; perform an operational transform on the first mutation, the second mutation and the third mutation to modify a value generated by the calculation thread from the third mutation based on changes resulted from the first and the second mutations and processed in the UI thread and generate a modified mutation by: determining that the first mutation and the second mutation each correspond to a merge mutation; and generating the modified mutation by merging non-conflicting subfields of the first mutation and the second mutation in response to the determination; generate an updated collaborative spreadsheet by updating a property of the cell in the collaborative spreadsheet to reflect the modified mutation, wherein the updated property is different from the common property field; and send the modified mutation collaborative spreadsheet to the first client computer and the second client computer to reflect the updated property. 7. The computing system of claim 6 , wherein the common property field is selected from the group consisting of a cell background field, a cell border field, a text formatting field, a vertical alignment field, a wrap strategy field, and a number format field. 8. The computing system of claim 6 , wherein the processor is further configured to perform the operational transform based on the first mutation and the second mutation to generate a modified mutation by selecting one of the first mutation and the second mutation as the modified mutation based on a policy in response to a determination that the first mutation and the second mutation each correspond to a replace mutation. 9. The computing system of claim 8 , wherein the processor is further configured to select one of the first mutation and the second mutation as the modified mutation based on the policy by determining whether the first mutation or the second mutation was received first. 10. The computing system of claim 8 , wherein the processor is further configured to perform the operational transform based on the first mutation and the second mutation to generate the modified mutation by selecting the first mutation as the modified mutation in response to a determination that the first mutation is a replace mutation and that the second mutation is a merge mutation. 11. The method of claim 1 , wherein: the first mutation includes a value for a first subfield that is different from the common property field, the second mutation includes a value for a second subfield that is different from the first subfield and that is different from the common property field, and the generating the modified mutation by merging non-conflicting subfields of the first mutation and the second mutation includes forming the modified mutation to include the value for the first subfield and to include the value for the second subfield. 12. The computing system of claim 6 , wherein: the first mutation includes a value for a first subfield that is different from the common property field, the second mutation includes a value for a second subfield that is different from the first subfield and that is different from the common property field, and the processo

Assignees

Inventors

Classifications

  • G06F40/18Primary

    of spreadsheets (form-filling G06F40/174) · CPC title

  • G06Q10/101Primary

    Collaborative creation, e.g. joint development of products or services · CPC title

  • G06F17/246Primary

    Physics · mapped topic

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9720897B2 cover?
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 operatio…
Who is the assignee on this patent?
Google Inc
What technology area does this patent fall under?
Primary CPC classification G06F40/18. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 01 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).