Conflict management during data object synchronization between client and server
First Claim
1. A method for synchronizing data objects, comprising:
- at a computing device,obtaining a first metadata entry associated with a first data object, the first metadata entry including;
(i) a first file name, wherein the first file name includes a directory path for the first data object; and
(ii) a first data object identifier distinct from the first file name;
obtaining a second metadata entry associated with a second data object, the second metadata entry including;
(i) a second file name, wherein the second file name includes a directory path for the second data object; and
(ii) a second data object identifier distinct from the second file name;
determining, using the first and second data object identifiers, whether the first data object and the second data object correspond to the same data object;
without regard to the first file name and the second file name; and
in accordance with a determination that the first data object and the second data object correspond to the same data object;
synchronizing the first data object with the second data object, including;
determining whether a third data object with a directory path matching the first directory path exists, wherein the third data object is stored on a computing devices different from a computing device on which the first data object is stored; and
in accordance with a determination that the third data object exists;
performing a conflict resolution action; and
in accordance with a determination that the third data object does not exist;
performing one or more synchronization operations on the first data object or the second data object.
1 Assignment
0 Petitions
Accused Products
Abstract
A server stores server metadata entries corresponding to data objects, each server metadata entry including a server file name and an identifier, distinct from the server file name, for a respective data object. The server receives client metadata entries from a client, each client metadata entry corresponding to a data object for which at least one metadata parameter has changed since a prior execution of a synchronization process. Each client metadata entry includes a client file name and an identifier, distinct from the client file name, for a respective data object corresponding to the client metadata entry. The server synchronizes the received client metadata entries with corresponding server metadata entries, if any, having identifiers that match said identifiers in the received client metadata entries, without regard to whether the corresponding server metadata entries include server file names that match the client file names in the received client metadata entries.
79 Citations
14 Claims
-
1. A method for synchronizing data objects, comprising:
at a computing device, obtaining a first metadata entry associated with a first data object, the first metadata entry including; (i) a first file name, wherein the first file name includes a directory path for the first data object; and (ii) a first data object identifier distinct from the first file name; obtaining a second metadata entry associated with a second data object, the second metadata entry including; (i) a second file name, wherein the second file name includes a directory path for the second data object; and (ii) a second data object identifier distinct from the second file name; determining, using the first and second data object identifiers, whether the first data object and the second data object correspond to the same data object;
without regard to the first file name and the second file name; andin accordance with a determination that the first data object and the second data object correspond to the same data object; synchronizing the first data object with the second data object, including; determining whether a third data object with a directory path matching the first directory path exists, wherein the third data object is stored on a computing devices different from a computing device on which the first data object is stored; and in accordance with a determination that the third data object exists; performing a conflict resolution action; and in accordance with a determination that the third data object does not exist; performing one or more synchronization operations on the first data object or the second data object. - View Dependent Claims (2, 3, 4, 5)
-
6. A computer system, comprising:
-
one or more processors; memory; and one or more programs, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for; obtaining a first metadata entry associated with a first data object, the first metadata entry including; (i) a first file name, wherein the first file name includes a directory path for the first data object; and (ii) a first data object identifier distinct from the first file name; obtaining a second metadata entry associated with a second data object, the second metadata entry including; (i) a second file name, wherein the second file name includes a directory path for the second data object; and (ii) a second data object identifier distinct from the second file name; determining, using the first and second data object identifiers, whether the first data object and the second data object correspond to the same data object, without regard to the first file name and the second file name; and in accordance with a determination that the first data object and the second data object correspond to the same data object; synchronizing the first data object with the second data object, including; determining whether a third data object with a directory path matching the first directory path exists, wherein the third data object is stored on a computing device different from a computing device on which the first data object is stored; and in accordance with a determination that the third data object exists;
performing a conflict resolution action; andin accordance with a determination that the third data object does not exist;
performing one or more synchronization operations on the first data object or the second data object. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A non-transitory computer readable storage medium storing one or more programs, the one or more programs comprising instructions, which when executed by a computer system with one or more processors, cause the computer system to:
-
obtain a first metadata entry associated with a first data object, the first metadata entry including; (i) a first file name, wherein the first file name includes a directory path for the first data object; and (ii) a first data object identifier distinct from the first file name; obtain a second metadata entry associated with a second data object, the second metadata entry including; (i) a second file name, wherein the second file name includes a directory path for the second data object; and (ii) a second data object identifier distinct from the second file name; determine, using the first and second data object identifiers, whether the first data object and the second data object correspond to the same data object, without regard to the first file name and the second file name; and in accordance with a determination that the first data object and the second data object correspond to the same data object; synchronize the first data object with the second data object, including; determine whether a third data object with a directory path matching the first directory path exists, wherein the third data object is stored on a computing device different from a computing device on which the first data object is stored; and in accordance with a determination that the third data object exists; perform a conflict resolution action; and in accordance with a determination that the third data object does not exist; perform one or more synchronization operations on the first data object or the second data object. - View Dependent Claims (12, 13, 14)
-
Specification