IP Library › Granted Patent US 10,684,997
Granted Patent B2
US 10,684,997 · App. 15/792,301 · Granted Jun 16, 2020

File consistency across file versions maintained by different services

Inventors: Tai The Do (Redmond, WA); Vijayalakshmi Ramkumar (Bellevue, WA); Eric O'Brien (Redmond, WA); Apeksha Godiyal (Redmond, WA); Alexandre Grigorovitch (Redmond, WA); Yisheng Chen (Issaquah, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F16/1844G06F16/152G06F16/178G06F16/2365
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,684,997
App. No.
15/792,301
Granted
Jun 16, 2020
Kind
B2
Abstract

Non-limiting examples of the present disclosure describe processing operations that achieve file consistency in the presence of a large-scale collaboration service. A mismatch may be determined between hash values associated with two or more versions of a file that is associated with a tenant of a productivity service. Version vector data for different versions of the file may be evaluated. Version vector data may comprise: a session value indicating a session of the productivity service and a version value that indicates a number of changes made by the tenant during the session. A synchronization determination is generated based on an evaluation of the version vector data for the different versions of the file.

Claims (31)

1. A method comprising:

determining a mismatch between hash values that comprise a first hash value identifying a first version of a file maintained by a client device and a second hash value identifying a second version of the file maintained by a productivity service that provides access to the file for one or more users over a network connection of a computing device;

evaluating, based on a determination of the mismatch between the hash values, version vector data for the first version of the file and the second version of the file, wherein the version vector data comprises: a session value indicating a session of the productivity service and a version value that indicates a numerical number of changes made to content of a file of the productivity service by a tenant during the session; and

generating a synchronization determination based on an evaluation of the version vector data for the first version of the file and the second version of the file.

2. The method of claim 1 , wherein the synchronization determination automatically overwrites the first version of the file with the second version of the file based on the evaluation indicating that the session value of the first version of the file and the second version of the file are the same and the version value of the second version of the file is equal to or greater than the version value of the first version of the file.

3. The method of claim 2 , further comprising: surfacing the second version of the file in the productivity service based on the synchronization determination when the tenant initiates a new session of the productivity service.

4. The method of claim 1 , wherein the synchronization determination automatically overwrites the second version of the file with the first version of the file based on the evaluation indicating that the session value of the first version of the file and the second version of the file are the same and the version value of the first version of the file is equal to or greater than the version value of the second version of the file.

5. The method of claim 4 , further comprising: surfacing the first version of the file in the productivity service based on the synchronization determination when the tenant initiates a new session of the productivity service.

6. The method of claim 1 , wherein the client device executes the determining of the mismatch between the hash values.

7. The method of claim 1 , wherein the hash values further comprise a third hash value identifying a third version of the file maintained by a file hosting service, and wherein the determining of the mismatch between the hash values comprises determining a difference between the first hash value, the second hash value and the third hash value.

8. A system comprising:

at least one processor; and

a memory, operatively connected with the at least one processor, storing computer-executable instructions that, when executed by the at least one processor, causes the at least one processor to execute a method that comprises:

determining a mismatch between hash values that comprise a first hash value identifying a first version of a file maintained by a client device and a second hash value identifying a second version of the file maintained by a productivity service that provides access to the file for one or more users over a network connection of the system;

evaluating, based on a determination of the mismatch between the hash values, version vector data for the first version of the file and the second version of the file, wherein the version vector data comprises: a session value indicating a session of the productivity service and a version value that indicates a numerical number of changes made to content of a file of the productivity service by a tenant during the session; and

generating a synchronization determination based on an evaluation of the version vector data for the first version of the file and the second version of the file.

9. The system of claim 8 , wherein the synchronization determination automatically overwrites the first version of the file with the second version of the file based on the evaluation indicating that the session value of the first version of the file and the second version of the file are the same and the version value of the second version of the file is equal to or greater than the version value of the first version of the file.

10. The system of claim 9 , wherein the method, executed by the at least one processor, further comprises: surfacing the second version of the file in the productivity service based on the synchronization determination when the tenant initiates a new session of the productivity service.

11. The system of claim 8 , wherein the synchronization determination automatically overwrites the second version of the file with the first version of the file based on the evaluation indicating that the session value of the first version of the file and the second version of the file are the same and the version value of the first version of the file is equal to or greater than the version value of the second version of the file.

12. The system of claim 11 , the method, executed by the at least one processor, further comprises: surfacing the first version of the file in the productivity service based on the synchronization determination when the tenant initiates a new session of the productivity service.

13. The system of claim 8 , wherein the system is the client device that executes the determining of the mismatch between the hash values.

14. The system of claim 8 , wherein the hash values further comprise a third hash value identifying a third version of the file maintained by a file hosting service, and wherein the determining of the mismatch between the hash values comprises determining a difference between the first hash value, the second hash value and the third hash value.

15. A computer-readable storage medium storing computer-executable instructions that, when executed by at least one processor, causes the at least one processor to execute a method comprising:

determining a mismatch between hash values that comprise a first hash value identifying a first version of a file maintained by a client device and a second hash value identifying a second version of the file maintained by a productivity service that provides access to the file for one or more users over a network connection of a computing device;

evaluating, based on a determination of the mismatch between the hash values, version vector data for the first version of the file and the second version of the file, wherein the version vector data comprises: a session value indicating a session of the productivity service and a version value that indicates a numerical number of changes made to content of a file of the productivity service by a tenant during the session; and

generating a synchronization determination based on an evaluation of the version vector data for the first version of the file and the second version of the file.

16. The computer-readable storage medium of claim 15 , wherein the synchronization determination automatically overwrites the first version of the file with the second version of the file based on the evaluation indicating that the session value of the first version of the file and the second version of the file are the same and the version value of the second version of the file is equal to or greater than the version value of the first version of the file.

17. The computer-readable storage medium of claim 16 , wherein the executed method further comprising: surfacing the second version of the file in the productivity service based on the synchronization determination when the tenant initiates a new session of the productivity service.

18. The computer-readable storage medium of claim 15 , wherein the synchronization determination automatically overwrites the second version of the file with the first version of the file based on the evaluation indicating that the session value of the first version of the file and the second version of the file are the same and the version value of the first version of the file is equal to or greater than the version value of the second version of the file, and wherein the executed method further comprising: surfacing the first version of the file in the productivity service based on the synchronization determination when the tenant initiates a new session of the productivity service.

19. The computer-readable storage medium of claim 15 , wherein the at least one processor is a component of the client device that executes the determining of the mismatch between the hash values.

20. The computer-readable storage medium of claim 15 , wherein the hash values further comprise a third hash value identifying a third version of the file maintained by a file hosting service, and wherein the determining of the mismatch between the hash values comprises determining a difference between the first hash value, the second hash value and the third hash value.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 24, 2017
From: DO, TAI THE; RAMKUMAR, VIJAYALAKSHMI; O'BRIEN, ERIC; GODIYAL, APEKSHA; GRIGOROVITCH, ALEXANDRE; CHEN, YISHENG
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 043939/0124 →
Continuity (1)
Related Publication 20190121876A1 · Apr 25, 2019