US20130006947A1 - Conflict resolution via metadata examination - Google Patents
Conflict resolution via metadata examination Download PDFInfo
- Publication number
- US20130006947A1 US20130006947A1 US13/175,868 US201113175868A US2013006947A1 US 20130006947 A1 US20130006947 A1 US 20130006947A1 US 201113175868 A US201113175868 A US 201113175868A US 2013006947 A1 US2013006947 A1 US 2013006947A1
- Authority
- US
- United States
- Prior art keywords
- file
- copy
- metadata
- metadata fields
- core
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
Definitions
- a computing device may detect a file synchronization conflict between two versions of a file.
- the computing device may determine whether the conflict is due to metadata differences between the two versions of the file.
- Core metadata fields may be metadata fields that are unchangeable. That is, a nature of a difference between core metadata fields of the two versions of the file may be categorized as immutable. In other words, two versions of the file may be expected to have identical core metadata fields. If the conflict is determined to be due to non-core metadata field differences, a nature of each of the non-core metadata field differences, or conflicts, may be characterized as either mergeable or subsumable.
- Conflicts characterized as mergeable may be resolved by merging values of corresponding conflicted non-core metadata fields to produce a conflict-resolved value for the corresponding conflicted non-core metadata fields.
- Conflicts characterized as subsumable may be resolved by replacing a value of a non-core metadata field of an older one of the two versions of the file with a corresponding non-core metadata field of a younger one of the two versions of the file.
- the corresponding non-core metadata fields of the two versions of the file may have identical values equal to a value of the non-core metadata field of the younger one of the two versions of the file.
- copies of the two versions of the files may be saved.
- a user may be prompted to select one of a number of possible conflict resolution solutions.
- FIG. 1 illustrates an exemplary environment in which embodiments consistent with the subject matter of this disclosure may operate.
- FIG. 2 is a functional block diagram of an exemplary computing device which may implement embodiments consistent with the subject matter of this disclosure.
- FIGS. 3 and 4 are flowcharts illustrating an exemplary process which may be performed in various embodiments.
- FIG. 5 illustrates an exemplary layout of metadata fields of a file.
- FIGS. 6 and 7 illustrate exemplary non-core metadata values of respective versions of a file.
- FIG. 8 illustrates values of non-core metadata fields of two versions of a file after performing the exemplary process described by the flowchart of FIGS. 3 and 4 .
- File synchronization conflicts can occur due to file updates received from multiple sources. Many file synchronization conflicts can occur due to conflicting changes in file metadata.
- current conflict resolution solutions do not resolve metadata conflicts in a way that is tailored for metadata conflicts. For example, solutions involving manual user resolution of conflicts are awkward and tend to negatively affect a user's experience. Automatic conflict resolution solutions treat the file as a whole, as opposed to inspecting metadata separately from the file contents and may lead to a transferring of a significant amount of user data as a result of data duplication, thereby consuming more storage and bandwidth.
- Embodiments consistent with the subject matter of this disclosure classify file synchronization conflicts into either conflicts due to metadata differences or conflicts due to differences in file content. For conflicts that are due solely to metadata differences, a nature of the metadata differences is categorized. A conflict resolution solution is provided which intelligently combines files without duplication of file contents or user intervention.
- a determination may be made regarding whether the conflict is due to metadata differences. If the conflict is determined to be due to metadata differences, a nature of each of the metadata differences may be categorized as immutable, mergeable, or subsumable. If the conflict is categorized as immutable, the metadata differences may be ignored and all conflicted versions of the file may be saved. In an alternate embodiment, if the conflict is categorized as immutable, a different action may be taken including, but not limited to, prompting a user regarding a selection of one of a number of conflict resolution actions. If the conflict is categorized as mergeable, contents or values of corresponding metadata fields may be merged. If the conflict is categorized as subsumable, a content or a value of a metadata field from an older version of a file may be replaced with a content or a value of a metadata field of a newer version of the metadata field.
- FIG. 1 illustrates an exemplary operating environment 100 in which various embodiments consistent with the subject matter of this disclosure may be implemented.
- Operating environment 100 may include a first computing device 102 , a second computing device 104 and a network 106 .
- First computing device 102 and/or second computing device 104 may be a personal computer (PC), a handheld device, a laptop computer, a server, or any other type of computing device.
- Network 106 may include one or more networks of various types, including, but not limited to, a private corporate network, a public network, a packet switching network, the Internet, a fiber optic network, a wireless network, or other types of networks.
- network 106 may be a direct connection between first computing device 102 and second computing device 104 , such as, for example, an infrared network connection, a Bluetooth® (Bluetooth is a registered trademark of BLUETOOTH SIG, INC. of Kirkland, Wash.) network connection, a WiFi (Wireless Fidelity) network connection, or other type of direct connection between first computing device 102 and second computing device 104 .
- a Bluetooth® Bluetooth is a registered trademark of BLUETOOTH SIG, INC. of Kirkland, Wash.
- WiFi Wireless Fidelity
- FIG. 2 is a block diagram of an exemplary computing device 200 , which may be used to implement embodiments of first computing device 102 and/or second computing device 104 .
- Computing device 200 may be a server, a personal computer (PC), a handheld computing device or another type of computing device.
- Computing device 200 may include hardware, such as a processor 260 , a bus 210 , a storage device 270 , an input device 220 , an output device 250 , a communication interface 280 and a memory, which may include a combination of a dynamic memory 230 and a static memory 240 .
- Dynamic memory 230 may include, but not be limited to, a random access memory (RAM) or other dynamic machine-readable storage medium.
- Static memory 240 may include, but not be limited to, a read only memory (ROM) or other static machine-readable storage medium.
- Dynamic memory 230 or another type of dynamic machine-readable storage medium, may store instructions as well as temporary variables or other intermediate information used during execution of instructions by processor 220 .
- Static memory 240 or another type of static machine-readable storage medium, may store static information and instructions for execution by processor 260 .
- Processor 260 may include one or more conventional processors that interpret and execute instructions. Some embodiments of computing device 200 may further include a hardware logic component, including, but not limited to, an application specific integrated circuit (ASIC) (not shown) and/or a field programmable gate array (FPGA) (not shown) that may be combined with instructions in memory 230 , 240 to cause computing device 200 to perform a method.
- ASIC application specific integrated circuit
- FPGA field programmable gate array
- Input device 220 may include a keyboard, a pointing device, or other device for providing input.
- Output device 250 may include a display, a printer, or other device for outputting information.
- Communication interface 280 may include a transceiver for sending and receiving information via network 106 .
- Storage device 270 may include a machine-readable storage medium such as, for example, a magnetic disk, a writable optical disc, a flash RAM device, or other type of machine-readable storage medium for storing data, instructions, or other information.
- a machine-readable storage medium such as, for example, a magnetic disk, a writable optical disc, a flash RAM device, or other type of machine-readable storage medium for storing data, instructions, or other information.
- Other non-limiting examples of storage device 250 may also include Digital Video Disk (DVD), compact Disk (CD), or other types of storage devices that use other types of machine-readable storage media for storing data and/or instructions for later use.
- DVD Digital Video Disk
- CD compact Disk
- Computing device 200 may communicate with other devices via a communication medium, which may include, but not be limited to a propagated signal on a carrier wave. Computing device 200 may perform functions in response to processor 260 executing sequences of instructions contained in a machine-readable storage medium. In some embodiments, the sequences of instructions may be read into the machine-readable storage medium from another machine-readable storage medium or from a separate device via communication interface 280 and the communication medium.
- a communication medium which may include, but not be limited to a propagated signal on a carrier wave.
- Computing device 200 may perform functions in response to processor 260 executing sequences of instructions contained in a machine-readable storage medium. In some embodiments, the sequences of instructions may be read into the machine-readable storage medium from another machine-readable storage medium or from a separate device via communication interface 280 and the communication medium.
- FIGS. 3 and 4 are flowcharts illustrating an exemplary process, which may be performed in various embodiments, for resolving conflicts via metadata examination.
- the process may begin with a computing device determining whether a first file is different from a second file (act 302 ).
- the first file may be stored in a storage medium associated with the computing device.
- the second file may be stored in a storage medium associated with a second computing device.
- act 302 may be performed by comparing a first file hash, calculated over contents and metadata of the first file, with a second file hash, calculated over contents and metadata of the second file.
- the first file hash and the second file hash may be previously calculated in some embodiments. If the first file hash and the second file hash are determined to be equal, then the contents and the metadata of the first file are identical to the contents and the metadata of the second file and the process is completed.
- the computing device may determine whether core metadata fields of the first file match corresponding core metadata fields of the second file (act 304 ).
- core metadata fields may be categorized as immutable. That is, the core metadata fields may not be changed. As a result, two different versions of a file are expected to have matching corresponding core metadata fields.
- the computing device may prepare to examine respective first non-core metadata fields of the first file and the second file (act 306 ). The computing device may then determine whether a non-core metadata field (the first non-core metadata field) of the first file matches a corresponding non-core metadata field (the first non-core metadata field) of the second file (act 308 ).
- the computing device may determine whether a nature of a difference, or conflict, between the respective non-core metadata fields is categorized as mergeable (act 310 ).
- various non-core metadata fields may be configured or defined as mergeable, such that a difference, or conflict, between corresponding ones of the various non-core metadata fields of two versions of a file may be categorized as mergeable.
- the computing device may merge contents or values of the respective corresponding non-core metadata fields to produce a conflict-resolved value and may set the respective non-core metadata fields to the conflict-resolved value (act 312 ).
- the computing device may determine whether the difference, or the conflict, between the respective non-core metadata fields is categorized as subsumable (act 402 ; FIG. 4 ).
- various non-core metadata fields may be configured or defined as subsumable, such that a nature of a difference, or a conflict, between corresponding ones of the various non-core metadata fields of two versions of a file may be categorized as subsumable.
- the computing device may replace a value of the non-core metadata field of an older one of the first file and the second file with the corresponding non-core metadata field of a more recent one of the first file and the second (act 404 ).
- the computing device may determine whether the first file and the second file have more non-core metadata fields to compare (act 406 ). If, during act 406 , the computing device determines that the first file and the second file have more non-core metadata fields to compare, then the computing device may prepare to examine a next non-core metadata field of the first file and a next corresponding non-core metadata field of the second file (act 408 ). The computing device may then determine whether the respective next non-core metadata fields match (act 308 ; FIG. 3 ).
- the computing device may determine whether the first file and the second file now have a same set of metadata (act 410 ). If the computing device determines that the first file and the second file now have the same set of metadata, then the computing device may determine whether the first file and the second file remain different from each other (act 412 ). In some embodiments, the computing device may perform act 412 by recalculating the first hash over the metadata and the contents of the first file, recalculating the second hash over the metadata and the contents of the second file, and determining whether the first hash and the second hash are equal or different from each other.
- act 414 may include the computing device renaming an older file of the first file and the second file and duplicating and saving the renamed older file and a more recent file of the first file and the second file.
- act 414 may include the computing device presenting a prompt to a user asking the user to select one of a number of actions to perform to attempt to resolve the differences.
- the computing device may present values of conflicting fields and may prompt the user to select one of the presented values as a winner.
- the computing device may use the value of the selected winner to set the respective corresponding field of one of the file and the second file not having the selected winner value.
- the above listed actions are just a few examples of many possible alternative actions that may be performed during act 414 . In other embodiments, the computing device may perform other actions during act 414 to resolve differences.
- the computing device may determine whether the first file is missing a value of one or more metadata fields that have a value in the second file, and whether the second file is missing a value of one or more metadata fields that have a value in the first file (act 416 ).
- the respective corresponding metadata fields of the first file and the second file may be merged to produce a conflict-resolved value, which may be set in the respective corresponding metadata fields of the first file and the second file (act 418 ).
- the computing device may then perform act 412 , again, to determine whether the first file and the second file remain different from each other.
- the computing device may declare one of the first file and the second file having one or more extra values for one or more corresponding metadata fields as a winner, and may declare another of the first file and the second file as a loser.
- the computing device add the one or more values of the one or more corresponding meta-data fields of the winner to the one or more of corresponding metadata fields, having a missing value, of the loser (act 420 ).
- the computing device determines that the content and the metadata of the first file is not different from the content and the metadata of the second file, then the process is completed.
- the computing device may perform act 414 and the process is completed.
- FIG. 5 illustrates an exemplary metadata field layout of a digital photo file.
- the metadata fields may include a focal length 502 , a geotag 504 , an exposure 506 , a caption 508 , and a view count 510 .
- Focal length 502 may have a value equal to a focal length of a digital photo.
- Geotag 504 may have a value indicative of a location at which the digital photo was captured.
- Exposure 506 may have a value equal to an exposure setting up a digital image capturing device that captured an image for the digital photo.
- Caption 508 may include textual characters that describe the digital photo.
- View count 510 may have a value indicating a number of times the digital photo has been viewed.
- Focal length 502 , geotag 504 and exposure 506 may be defined, or configured, to be immutable or unchangeable. That is, focal length 502 , geotag 504 and exposure 506 may be core metadata fields.
- FIG. 6 illustrates exemplary metadata fields of a first digital photo file having the metadata field layout illustrated by FIG. 5 .
- focal length 502 , geotag 504 and exposure 506 may be core metadata fields.
- Caption metadata field 508 may have a value of “Hawaii” and view count metadata field 510 may have a value of “1,298”.
- FIG. 7 illustrates exemplary metadata fields of a second digital photo file, which, in this example, is another version of the first digital photo file from another device.
- focal length 502 , geotag 504 and exposure 506 may be core metadata fields.
- Caption metadata field 508 of the second digital photo file may have a value of “Waikiki Beach” and view count metadata field 510 of the second digital photo file may have a value of “1,532”.
- FIG. 8 illustrates values of exemplary metadata fields of the first digital photo file and the second digital photo file after performing the exemplary method according to the flowcharts of FIGS. 3 and 4 .
- contents of the first digital photo file is equal to contents of the second digital photo file while metadata of the first digital photo file is not equal to metadata of the second digital photo file.
- a computing device may determine whether metadata and contents the first digital photo file and the second digital photo file are different (act 302 ). In this example, because the metadata of the two digital photo files are different, the computing device determines that the two digital photo files are different. Therefore, the computing device may determine whether core metadata fields of the first digital photo file and corresponding core metadata fields of the second digital photo file match (act 304 ). In this example, we assume that the core metadata fields match.
- the computing device then may prepare to examine respective first non-core metadata fields of the first digital photo file and the second digital photo file (act 306 ).
- the respective non-core metadata fields correspond to caption metadata field 508 and have values “Hawaii” and “Waikiki Beach”, respectively.
- the computing device may then determine whether the respective non-core metadata fields match (act 308 ). Because the respective non-core metadata fields do not match, the computing device may determine whether a nature of the difference between the respective non-core metadata fields is categorized as mergeable (act 310 ). In this example, the respective non-core metadata fields are categorized as mergeable.
- the computing device may merge “Hawaii” and “Waikiki Beach” to produce a conflict-resolved value of “Waikiki Beach, Hi.”, which the computing device may set as a value for corresponding metadata fields of the first digital photo file and the second digital photo file (act 312 ).
- the computing device may then determine whether the first digital photo file and the second digital photo file have more non-core metadata fields (act 406 ; FIG. 4 ). In this example, the first digital photo file and the second digital photo file have more non-core metadata fields.
- the computing device may then prepare to examine next respective non-core metadata fields of the first digital photo file and the second digital photo file (act 408 ).
- the computing device may then determine whether the next respective non-core metadata fields match (act 308 ).
- the next respective non-core metadata fields correspond to the view count metadata field of the first digital photo file and the second digital photo file having values “1,298” and “1,532”, respectively, which do not match.
- the computing device may then determine whether a nature of the difference between the respective next non-core metadata fields is categorized as mergeable (act 312 ).
- the computing device may determine whether the nature of the difference between the respective next non-core metadata fields is categorized as subsumable (act 402 ; FIG. 4 ). Because, in this example, the nature of the difference between the respective next non-core metadata fields is characterized as subsumable, the computing device may then replace a value of the next non-core metadata field of an older file of the first digital photo file and the second digital photo file with a value of the next non-core metadata field of a more recent file of the first digital photo file and the second digital photo file (act 404 ). In this example, “1,298” is replaced by 1,532 producing a conflict-resolved value of “1,532”, which the computing device sets as a value of non-core metadata field view count of the older of the first digital photo file and the second digital photo file.
- the computing device may determine whether there are more non-core metadata fields to examine (act 406 ). In this example, there are no more non-core metadata fields to examine. Therefore, the computing device may then determine whether the metadata fields of the first digital photo file and the metadata fields of the second digital photo file are equal (act 410 ). In this example, the metadata fields are equal.
- the computing device may determine whether the first digital photo file is different from the second digital photo file (act 412 ). Because, in this example, we assume that the first digital photo file and the second digital photo file have respective contents that are equal, the process is now completed.
- FIG. 8 illustrates values of the caption metadata field and the view count metadata field of the first digital photo file and the second digital photo file after the above-mentioned process is completed.
- the core metadata fields remained unchanged, the caption metadata field has a value of “Waikiki Beach, Hi.”, and the view count metadata field has a value of “1,532”.
- a computing device in various embodiments may resolve file synchronization conflicts with respect to metadata of other types of files including, but not limited, audio files, video files, and data files.
- Embodiments consistent with the subject matter of this disclosure resolve file synchronization metadata field conflicts between two versions of a file by examining and resolving the metadata conflicts separately from file content conflicts.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
- During file synchronization, conflicts commonly occur. Typically, conflicts are a result of updates to a given file from multiple devices. Some existing file synchronization solutions provide an option for manual user resolution of conflicts. However, manual user resolution is cumbersome for users and can negatively affect a user's experience. Current solutions for automatically resolving conflicts can result in a transferring of a significant amount of user data as well as data duplication, both of which consume bandwidth and storage.
- This Summary is provided to introduce a selection of concepts in a simplified form that is further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
- In embodiments consistent with the subject matter of this disclosure, a computing device may detect a file synchronization conflict between two versions of a file. The computing device may determine whether the conflict is due to metadata differences between the two versions of the file. Core metadata fields may be metadata fields that are unchangeable. That is, a nature of a difference between core metadata fields of the two versions of the file may be categorized as immutable. In other words, two versions of the file may be expected to have identical core metadata fields. If the conflict is determined to be due to non-core metadata field differences, a nature of each of the non-core metadata field differences, or conflicts, may be characterized as either mergeable or subsumable. Conflicts characterized as mergeable may be resolved by merging values of corresponding conflicted non-core metadata fields to produce a conflict-resolved value for the corresponding conflicted non-core metadata fields. Conflicts characterized as subsumable may be resolved by replacing a value of a non-core metadata field of an older one of the two versions of the file with a corresponding non-core metadata field of a younger one of the two versions of the file. As a result, the corresponding non-core metadata fields of the two versions of the file may have identical values equal to a value of the non-core metadata field of the younger one of the two versions of the file.
- In some variations of the embodiments, when either the core metadata fields of the two versions of the file fail to match or when metadata and/or contents of the two versions of the file fail to match after examining and attempting to resolve any differences in the non-core metadata fields, copies of the two versions of the files may be saved. In an alternate embodiment, instead of saving copies of the two versions of the file, a user may be prompted to select one of a number of possible conflict resolution solutions.
- In order to describe the manner in which the above-recited and other advantages and features can be obtained, a more particular description is described below and will be rendered by reference to specific embodiments thereof which are illustrated in the appended drawings. Understand that these drawings depict only typical embodiments and are not therefore to be considered to be limiting of its scope. Implementations will be described and explained with additional specificity and detail through the use of the accompanying drawings.
-
FIG. 1 illustrates an exemplary environment in which embodiments consistent with the subject matter of this disclosure may operate. -
FIG. 2 is a functional block diagram of an exemplary computing device which may implement embodiments consistent with the subject matter of this disclosure. -
FIGS. 3 and 4 are flowcharts illustrating an exemplary process which may be performed in various embodiments. -
FIG. 5 illustrates an exemplary layout of metadata fields of a file. -
FIGS. 6 and 7 illustrate exemplary non-core metadata values of respective versions of a file. -
FIG. 8 illustrates values of non-core metadata fields of two versions of a file after performing the exemplary process described by the flowchart ofFIGS. 3 and 4 . - File synchronization conflicts can occur due to file updates received from multiple sources. Many file synchronization conflicts can occur due to conflicting changes in file metadata. However, current conflict resolution solutions do not resolve metadata conflicts in a way that is tailored for metadata conflicts. For example, solutions involving manual user resolution of conflicts are awkward and tend to negatively affect a user's experience. Automatic conflict resolution solutions treat the file as a whole, as opposed to inspecting metadata separately from the file contents and may lead to a transferring of a significant amount of user data as a result of data duplication, thereby consuming more storage and bandwidth.
- Embodiments consistent with the subject matter of this disclosure classify file synchronization conflicts into either conflicts due to metadata differences or conflicts due to differences in file content. For conflicts that are due solely to metadata differences, a nature of the metadata differences is categorized. A conflict resolution solution is provided which intelligently combines files without duplication of file contents or user intervention.
- In various embodiments, upon detecting a conflict between two versions of a file, a determination may be made regarding whether the conflict is due to metadata differences. If the conflict is determined to be due to metadata differences, a nature of each of the metadata differences may be categorized as immutable, mergeable, or subsumable. If the conflict is categorized as immutable, the metadata differences may be ignored and all conflicted versions of the file may be saved. In an alternate embodiment, if the conflict is categorized as immutable, a different action may be taken including, but not limited to, prompting a user regarding a selection of one of a number of conflict resolution actions. If the conflict is categorized as mergeable, contents or values of corresponding metadata fields may be merged. If the conflict is categorized as subsumable, a content or a value of a metadata field from an older version of a file may be replaced with a content or a value of a metadata field of a newer version of the metadata field.
-
FIG. 1 illustrates anexemplary operating environment 100 in which various embodiments consistent with the subject matter of this disclosure may be implemented.Operating environment 100 may include afirst computing device 102, asecond computing device 104 and anetwork 106.First computing device 102 and/orsecond computing device 104 may be a personal computer (PC), a handheld device, a laptop computer, a server, or any other type of computing device. Network 106 may include one or more networks of various types, including, but not limited to, a private corporate network, a public network, a packet switching network, the Internet, a fiber optic network, a wireless network, or other types of networks. In one embodiment,network 106 may be a direct connection betweenfirst computing device 102 andsecond computing device 104, such as, for example, an infrared network connection, a Bluetooth® (Bluetooth is a registered trademark of BLUETOOTH SIG, INC. of Kirkland, Wash.) network connection, a WiFi (Wireless Fidelity) network connection, or other type of direct connection betweenfirst computing device 102 andsecond computing device 104. -
FIG. 2 is a block diagram of anexemplary computing device 200, which may be used to implement embodiments offirst computing device 102 and/orsecond computing device 104.Computing device 200 may be a server, a personal computer (PC), a handheld computing device or another type of computing device.Computing device 200 may include hardware, such as aprocessor 260, abus 210, astorage device 270, aninput device 220, anoutput device 250, acommunication interface 280 and a memory, which may include a combination of adynamic memory 230 and astatic memory 240. -
Dynamic memory 230 may include, but not be limited to, a random access memory (RAM) or other dynamic machine-readable storage medium.Static memory 240 may include, but not be limited to, a read only memory (ROM) or other static machine-readable storage medium.Dynamic memory 230, or another type of dynamic machine-readable storage medium, may store instructions as well as temporary variables or other intermediate information used during execution of instructions byprocessor 220.Static memory 240, or another type of static machine-readable storage medium, may store static information and instructions for execution byprocessor 260. -
Processor 260 may include one or more conventional processors that interpret and execute instructions. Some embodiments ofcomputing device 200 may further include a hardware logic component, including, but not limited to, an application specific integrated circuit (ASIC) (not shown) and/or a field programmable gate array (FPGA) (not shown) that may be combined with instructions inmemory computing device 200 to perform a method. -
Input device 220 may include a keyboard, a pointing device, or other device for providing input.Output device 250 may include a display, a printer, or other device for outputting information.Communication interface 280 may include a transceiver for sending and receiving information vianetwork 106. -
Storage device 270 may include a machine-readable storage medium such as, for example, a magnetic disk, a writable optical disc, a flash RAM device, or other type of machine-readable storage medium for storing data, instructions, or other information. Other non-limiting examples ofstorage device 250 may also include Digital Video Disk (DVD), compact Disk (CD), or other types of storage devices that use other types of machine-readable storage media for storing data and/or instructions for later use. -
Computing device 200 may communicate with other devices via a communication medium, which may include, but not be limited to a propagated signal on a carrier wave.Computing device 200 may perform functions in response toprocessor 260 executing sequences of instructions contained in a machine-readable storage medium. In some embodiments, the sequences of instructions may be read into the machine-readable storage medium from another machine-readable storage medium or from a separate device viacommunication interface 280 and the communication medium. -
FIGS. 3 and 4 are flowcharts illustrating an exemplary process, which may be performed in various embodiments, for resolving conflicts via metadata examination. The process may begin with a computing device determining whether a first file is different from a second file (act 302). The first file may be stored in a storage medium associated with the computing device. The second file may be stored in a storage medium associated with a second computing device. In some embodiments, act 302 may be performed by comparing a first file hash, calculated over contents and metadata of the first file, with a second file hash, calculated over contents and metadata of the second file. The first file hash and the second file hash may be previously calculated in some embodiments. If the first file hash and the second file hash are determined to be equal, then the contents and the metadata of the first file are identical to the contents and the metadata of the second file and the process is completed. - If, during
act 302, the computing device determines that the first file and the second file are different, then the computing device may determine whether core metadata fields of the first file match corresponding core metadata fields of the second file (act 304). In various embodiments, core metadata fields may be categorized as immutable. That is, the core metadata fields may not be changed. As a result, two different versions of a file are expected to have matching corresponding core metadata fields. - If, during
act 304, the core metadata fields of the first file are determined to match the core metadata fields of the second file, then the computing device may prepare to examine respective first non-core metadata fields of the first file and the second file (act 306). The computing device may then determine whether a non-core metadata field (the first non-core metadata field) of the first file matches a corresponding non-core metadata field (the first non-core metadata field) of the second file (act 308). - If, during
act 308, the computing device determines that the respective non-core metadata fields do not match, then the computing device may determine whether a nature of a difference, or conflict, between the respective non-core metadata fields is categorized as mergeable (act 310). In some embodiments, various non-core metadata fields may be configured or defined as mergeable, such that a difference, or conflict, between corresponding ones of the various non-core metadata fields of two versions of a file may be categorized as mergeable. If the computing device determines that the difference, or the conflict, between the respective non-core metadata fields is categorized as mergeable, then the computing device may merge contents or values of the respective corresponding non-core metadata fields to produce a conflict-resolved value and may set the respective non-core metadata fields to the conflict-resolved value (act 312). - If, during
act 310, the computing device determines that the difference, or the conflict, between the respective non-core metadata fields is not categorized as mergeable, then the computing device may determine whether the difference, or the conflict, between the respective non-core metadata fields is categorized as subsumable (act 402;FIG. 4 ). In some embodiments, various non-core metadata fields may be configured or defined as subsumable, such that a nature of a difference, or a conflict, between corresponding ones of the various non-core metadata fields of two versions of a file may be categorized as subsumable. If the computing device determines that the nature of the difference, or the conflict, between the respective non-core metadata fields is categorized as subsumable, then the computing device may replace a value of the non-core metadata field of an older one of the first file and the second file with the corresponding non-core metadata field of a more recent one of the first file and the second (act 404). - Next, if during
act 308 the computing device determines that the respective non-core metadata fields match, or after the computing device completesacts act 402, that the nature of the difference or the conflict is not subsumable, then the computing device may determine whether the first file and the second file have more non-core metadata fields to compare (act 406). If, duringact 406, the computing device determines that the first file and the second file have more non-core metadata fields to compare, then the computing device may prepare to examine a next non-core metadata field of the first file and a next corresponding non-core metadata field of the second file (act 408). The computing device may then determine whether the respective next non-core metadata fields match (act 308;FIG. 3 ). - If, during
act 406, the computing device determines that there are no additional non-core metadata fields to examine, then the computing device may determine whether the first file and the second file now have a same set of metadata (act 410). If the computing device determines that the first file and the second file now have the same set of metadata, then the computing device may determine whether the first file and the second file remain different from each other (act 412). In some embodiments, the computing device may performact 412 by recalculating the first hash over the metadata and the contents of the first file, recalculating the second hash over the metadata and the contents of the second file, and determining whether the first hash and the second hash are equal or different from each other. - If, during
act 412, the computing device determines that the first file and the second file are equal (do not remain different), then the process is complete. Otherwise, the computing device may take action to attempt to resolve differences between the first file and the second file (act 414), before completing the process. In some embodiments, act 414 may include the computing device renaming an older file of the first file and the second file and duplicating and saving the renamed older file and a more recent file of the first file and the second file. In other embodiments, act 414 may include the computing device presenting a prompt to a user asking the user to select one of a number of actions to perform to attempt to resolve the differences. For example, the computing device may present values of conflicting fields and may prompt the user to select one of the presented values as a winner. The computing device may use the value of the selected winner to set the respective corresponding field of one of the file and the second file not having the selected winner value. The above listed actions are just a few examples of many possible alternative actions that may be performed duringact 414. In other embodiments, the computing device may perform other actions duringact 414 to resolve differences. - If, during
act 410, the computing device determines that the first file and the second file do not have the same set of metadata, then the computing device may determine whether the first file is missing a value of one or more metadata fields that have a value in the second file, and whether the second file is missing a value of one or more metadata fields that have a value in the first file (act 416). If the computing device determines that the first file is missing a value of one or more metadata fields that have a value in the second file, and the second file is missing a value of one or more metadata fields that have a value in the first file, then the respective corresponding metadata fields of the first file and the second file may be merged to produce a conflict-resolved value, which may be set in the respective corresponding metadata fields of the first file and the second file (act 418). The computing device may then performact 412, again, to determine whether the first file and the second file remain different from each other. - If, during
act 416, the computing device fails to determine that the first file is missing one or more values of one or more metadata fields that have respective values in the one or more corresponding metadata fields of the second file, and that the second file is missing one or more metadata fields that have a value in the corresponding one or more metadata fields of the first file, then the computing device may declare one of the first file and the second file having one or more extra values for one or more corresponding metadata fields as a winner, and may declare another of the first file and the second file as a loser. The computing device add the one or more values of the one or more corresponding meta-data fields of the winner to the one or more of corresponding metadata fields, having a missing value, of the loser (act 420). - If, during
act 302, the computing device determines that the content and the metadata of the first file is not different from the content and the metadata of the second file, then the process is completed. - If, during
act 304, the computing device determines that the core metadata fields of the first file and the second file do not match, then the computing device may performact 414 and the process is completed. -
FIG. 5 illustrates an exemplary metadata field layout of a digital photo file. The metadata fields may include afocal length 502, ageotag 504, anexposure 506, acaption 508, and aview count 510.Focal length 502 may have a value equal to a focal length of a digital photo.Geotag 504 may have a value indicative of a location at which the digital photo was captured.Exposure 506 may have a value equal to an exposure setting up a digital image capturing device that captured an image for the digital photo.Caption 508 may include textual characters that describe the digital photo.View count 510 may have a value indicating a number of times the digital photo has been viewed.Focal length 502,geotag 504 andexposure 506 may be defined, or configured, to be immutable or unchangeable. That is,focal length 502,geotag 504 andexposure 506 may be core metadata fields. -
FIG. 6 illustrates exemplary metadata fields of a first digital photo file having the metadata field layout illustrated byFIG. 5 . As mentioned above,focal length 502,geotag 504 andexposure 506 may be core metadata fields.Caption metadata field 508 may have a value of “Hawaii” and viewcount metadata field 510 may have a value of “1,298”. -
FIG. 7 illustrates exemplary metadata fields of a second digital photo file, which, in this example, is another version of the first digital photo file from another device. As previously mentioned,focal length 502,geotag 504 andexposure 506 may be core metadata fields.Caption metadata field 508 of the second digital photo file may have a value of “Waikiki Beach” and viewcount metadata field 510 of the second digital photo file may have a value of “1,532”. -
FIG. 8 illustrates values of exemplary metadata fields of the first digital photo file and the second digital photo file after performing the exemplary method according to the flowcharts ofFIGS. 3 and 4 . In this example, we assume that contents of the first digital photo file is equal to contents of the second digital photo file while metadata of the first digital photo file is not equal to metadata of the second digital photo file. - With respect to
FIG. 3 and the above example, a computing device may determine whether metadata and contents the first digital photo file and the second digital photo file are different (act 302). In this example, because the metadata of the two digital photo files are different, the computing device determines that the two digital photo files are different. Therefore, the computing device may determine whether core metadata fields of the first digital photo file and corresponding core metadata fields of the second digital photo file match (act 304). In this example, we assume that the core metadata fields match. - The computing device then may prepare to examine respective first non-core metadata fields of the first digital photo file and the second digital photo file (act 306). In this example, the respective non-core metadata fields correspond to
caption metadata field 508 and have values “Hawaii” and “Waikiki Beach”, respectively. The computing device may then determine whether the respective non-core metadata fields match (act 308). Because the respective non-core metadata fields do not match, the computing device may determine whether a nature of the difference between the respective non-core metadata fields is categorized as mergeable (act 310). In this example, the respective non-core metadata fields are categorized as mergeable. - Next, because the nature of the difference the respective non-core metadata fields is categorized as mergeable, the computing device may merge “Hawaii” and “Waikiki Beach” to produce a conflict-resolved value of “Waikiki Beach, Hi.”, which the computing device may set as a value for corresponding metadata fields of the first digital photo file and the second digital photo file (act 312). The computing device may then determine whether the first digital photo file and the second digital photo file have more non-core metadata fields (act 406;
FIG. 4 ). In this example, the first digital photo file and the second digital photo file have more non-core metadata fields. The computing device may then prepare to examine next respective non-core metadata fields of the first digital photo file and the second digital photo file (act 408). - Returning to
FIG. 3 , the computing device may then determine whether the next respective non-core metadata fields match (act 308). In this example, the next respective non-core metadata fields correspond to the view count metadata field of the first digital photo file and the second digital photo file having values “1,298” and “1,532”, respectively, which do not match. The computing device may then determine whether a nature of the difference between the respective next non-core metadata fields is categorized as mergeable (act 312). - In this example, the nature of the difference between the respective next non-core metadata fields is categorized as subsumable. Therefore, the computing device then may determine whether the nature of the difference between the respective next non-core metadata fields is categorized as subsumable (act 402;
FIG. 4 ). Because, in this example, the nature of the difference between the respective next non-core metadata fields is characterized as subsumable, the computing device may then replace a value of the next non-core metadata field of an older file of the first digital photo file and the second digital photo file with a value of the next non-core metadata field of a more recent file of the first digital photo file and the second digital photo file (act 404). In this example, “1,298” is replaced by 1,532 producing a conflict-resolved value of “1,532”, which the computing device sets as a value of non-core metadata field view count of the older of the first digital photo file and the second digital photo file. - Next, the computing device may determine whether there are more non-core metadata fields to examine (act 406). In this example, there are no more non-core metadata fields to examine. Therefore, the computing device may then determine whether the metadata fields of the first digital photo file and the metadata fields of the second digital photo file are equal (act 410). In this example, the metadata fields are equal.
- Next, the computing device may determine whether the first digital photo file is different from the second digital photo file (act 412). Because, in this example, we assume that the first digital photo file and the second digital photo file have respective contents that are equal, the process is now completed.
-
FIG. 8 illustrates values of the caption metadata field and the view count metadata field of the first digital photo file and the second digital photo file after the above-mentioned process is completed. The core metadata fields remained unchanged, the caption metadata field has a value of “Waikiki Beach, Hi.”, and the view count metadata field has a value of “1,532”. - Although the above example discussed digital photo files, a computing device in various embodiments may resolve file synchronization conflicts with respect to metadata of other types of files including, but not limited, audio files, video files, and data files.
- Embodiments consistent with the subject matter of this disclosure resolve file synchronization metadata field conflicts between two versions of a file by examining and resolving the metadata conflicts separately from file content conflicts.
- Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms for implementing the claims. Further, the acts of the exemplary process described by
FIGS. 3-4 may be performed in a different order in other embodiments. Other embodiments may include additional acts not described byFIGS. 3 and 4 , and/or may not perform some of the acts described byFIGS. 3 and 4 . - Accordingly, the appended claims and their legal equivalents define embodiments, rather than any specific examples given.
Claims (20)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/175,868 US8533165B2 (en) | 2011-07-03 | 2011-07-03 | Conflict resolution via metadata examination |
US14/014,878 US9116942B2 (en) | 2011-07-03 | 2013-08-30 | Conflict resolution via metadata examination |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/175,868 US8533165B2 (en) | 2011-07-03 | 2011-07-03 | Conflict resolution via metadata examination |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/014,878 Continuation US9116942B2 (en) | 2011-07-03 | 2013-08-30 | Conflict resolution via metadata examination |
Publications (2)
Publication Number | Publication Date |
---|---|
US20130006947A1 true US20130006947A1 (en) | 2013-01-03 |
US8533165B2 US8533165B2 (en) | 2013-09-10 |
Family
ID=47391643
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/175,868 Active 2032-03-20 US8533165B2 (en) | 2011-07-03 | 2011-07-03 | Conflict resolution via metadata examination |
US14/014,878 Active US9116942B2 (en) | 2011-07-03 | 2013-08-30 | Conflict resolution via metadata examination |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/014,878 Active US9116942B2 (en) | 2011-07-03 | 2013-08-30 | Conflict resolution via metadata examination |
Country Status (1)
Country | Link |
---|---|
US (2) | US8533165B2 (en) |
Cited By (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8601326B1 (en) * | 2013-07-05 | 2013-12-03 | Palantir Technologies, Inc. | Data quality monitors |
US20130346478A1 (en) * | 2012-06-10 | 2013-12-26 | Apple Inc. | Unified playback position |
US8855999B1 (en) | 2013-03-15 | 2014-10-07 | Palantir Technologies Inc. | Method and system for generating a parser and parsing complex data |
US8930897B2 (en) | 2013-03-15 | 2015-01-06 | Palantir Technologies Inc. | Data integration tool |
US20150012488A1 (en) * | 2013-07-08 | 2015-01-08 | Dropbox, Inc. | Structured Content Item Synchronization |
US9338013B2 (en) | 2013-12-30 | 2016-05-10 | Palantir Technologies Inc. | Verifiable redactable audit log |
US9348499B2 (en) | 2008-09-15 | 2016-05-24 | Palantir Technologies, Inc. | Sharing objects that rely on local resources with outside servers |
US9483546B2 (en) | 2014-12-15 | 2016-11-01 | Palantir Technologies Inc. | System and method for associating related records to common entities across multiple lists |
US9495353B2 (en) | 2013-03-15 | 2016-11-15 | Palantir Technologies Inc. | Method and system for generating a parser and parsing complex data |
US9514414B1 (en) | 2015-12-11 | 2016-12-06 | Palantir Technologies Inc. | Systems and methods for identifying and categorizing electronic documents through machine learning |
US9678850B1 (en) | 2016-06-10 | 2017-06-13 | Palantir Technologies Inc. | Data pipeline monitoring |
US9715518B2 (en) | 2012-01-23 | 2017-07-25 | Palantir Technologies, Inc. | Cross-ACL multi-master replication |
US9760556B1 (en) | 2015-12-11 | 2017-09-12 | Palantir Technologies Inc. | Systems and methods for annotating and linking electronic documents |
US9772934B2 (en) | 2015-09-14 | 2017-09-26 | Palantir Technologies Inc. | Pluggable fault detection tests for data pipelines |
US9846528B2 (en) | 2015-03-02 | 2017-12-19 | Dropbox, Inc. | Native application collaboration |
US9946738B2 (en) | 2014-11-05 | 2018-04-17 | Palantir Technologies, Inc. | Universal data pipeline |
WO2018071276A1 (en) * | 2016-10-12 | 2018-04-19 | Microsoft Technology Licensing, Llc | File synchronization in computing systems |
US9965534B2 (en) | 2015-09-09 | 2018-05-08 | Palantir Technologies, Inc. | Domain-specific language for dataset transformations |
US9984428B2 (en) | 2015-09-04 | 2018-05-29 | Palantir Technologies Inc. | Systems and methods for structuring data from unstructured electronic data files |
US9996595B2 (en) | 2015-08-03 | 2018-06-12 | Palantir Technologies, Inc. | Providing full data provenance visualization for versioned datasets |
US9996229B2 (en) | 2013-10-03 | 2018-06-12 | Palantir Technologies Inc. | Systems and methods for analyzing performance of an entity |
US10007674B2 (en) | 2016-06-13 | 2018-06-26 | Palantir Technologies Inc. | Data revision control in large-scale data analytic systems |
US10061828B2 (en) | 2006-11-20 | 2018-08-28 | Palantir Technologies, Inc. | Cross-ontology multi-master replication |
US10103953B1 (en) | 2015-05-12 | 2018-10-16 | Palantir Technologies Inc. | Methods and systems for analyzing entity performance |
US10127289B2 (en) | 2015-08-19 | 2018-11-13 | Palantir Technologies Inc. | Systems and methods for automatic clustering and canonical designation of related data in various data structures |
US10133588B1 (en) | 2016-10-20 | 2018-11-20 | Palantir Technologies Inc. | Transforming instructions for collaborative updates |
US10133782B2 (en) | 2016-08-01 | 2018-11-20 | Palantir Technologies Inc. | Techniques for data extraction |
US10140664B2 (en) | 2013-03-14 | 2018-11-27 | Palantir Technologies Inc. | Resolving similar entities from a transaction database |
US10152531B2 (en) | 2013-03-15 | 2018-12-11 | Palantir Technologies Inc. | Computer-implemented systems and methods for comparing and associating objects |
US10235533B1 (en) | 2017-12-01 | 2019-03-19 | Palantir Technologies Inc. | Multi-user access controls in electronic simultaneously editable document editor |
US10313761B2 (en) | 2013-03-14 | 2019-06-04 | Apple Inc. | Media playback across multiple devices |
US10382502B2 (en) | 2016-04-04 | 2019-08-13 | Dropbox, Inc. | Change comments for synchronized content items |
US10496529B1 (en) | 2018-04-18 | 2019-12-03 | Palantir Technologies Inc. | Data unit test-based data management system |
US10503574B1 (en) | 2017-04-10 | 2019-12-10 | Palantir Technologies Inc. | Systems and methods for validating data |
US10579647B1 (en) | 2013-12-16 | 2020-03-03 | Palantir Technologies Inc. | Methods and systems for analyzing entity performance |
US10621314B2 (en) | 2016-08-01 | 2020-04-14 | Palantir Technologies Inc. | Secure deployment of a software package |
US10754822B1 (en) | 2018-04-18 | 2020-08-25 | Palantir Technologies Inc. | Systems and methods for ontology migration |
US10762102B2 (en) | 2013-06-20 | 2020-09-01 | Palantir Technologies Inc. | System and method for incremental replication |
US10789002B1 (en) * | 2017-10-23 | 2020-09-29 | EMC IP Holding Company LLC | Hybrid data deduplication for elastic cloud storage devices |
US10791186B2 (en) | 2014-04-08 | 2020-09-29 | Dropbox, Inc. | Displaying presence in an application accessing shared and synchronized content |
US10795909B1 (en) | 2018-06-14 | 2020-10-06 | Palantir Technologies Inc. | Minimized and collapsed resource dependency path |
US10838987B1 (en) | 2017-12-20 | 2020-11-17 | Palantir Technologies Inc. | Adaptive and transparent entity screening |
US10866792B1 (en) | 2018-04-17 | 2020-12-15 | Palantir Technologies Inc. | System and methods for rules-based cleaning of deployment pipelines |
US10887388B2 (en) | 2014-04-08 | 2021-01-05 | Dropbox, Inc. | Managing presence among devices accessing shared and synchronized content |
US10956406B2 (en) | 2017-06-12 | 2021-03-23 | Palantir Technologies Inc. | Propagated deletion of database records and derived data |
US10965746B2 (en) | 2014-04-08 | 2021-03-30 | Dropbox, Inc. | Determining presence in an application accessing shared and synchronized content |
US11061874B1 (en) | 2017-12-14 | 2021-07-13 | Palantir Technologies Inc. | Systems and methods for resolving entity data across various data structures |
US11061542B1 (en) | 2018-06-01 | 2021-07-13 | Palantir Technologies Inc. | Systems and methods for determining and displaying optimal associations of data items |
US11074277B1 (en) | 2017-05-01 | 2021-07-27 | Palantir Technologies Inc. | Secure resolution of canonical entities |
US11106692B1 (en) | 2016-08-04 | 2021-08-31 | Palantir Technologies Inc. | Data record resolution and correlation system |
US11170345B2 (en) | 2015-12-29 | 2021-11-09 | Dropbox Inc. | Content item activity feed for presenting events associated with content items |
US11172038B2 (en) | 2014-04-08 | 2021-11-09 | Dropbox, Inc. | Browser display of native application presence and interaction data |
US11645250B2 (en) * | 2017-12-08 | 2023-05-09 | Palantir Technologies Inc. | Detection and enrichment of missing data or metadata for large data sets |
US11875028B2 (en) | 2015-12-30 | 2024-01-16 | Dropbox, Inc. | Native application collaboration |
US12124465B2 (en) | 2015-09-04 | 2024-10-22 | Palantir Technologies Inc. | Systems and methods for database investigation tool |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103544251B (en) * | 2013-10-14 | 2017-06-16 | 白天 | Multi-source image processing method and its device |
US20160133168A1 (en) * | 2014-11-06 | 2016-05-12 | Sung Jae Cho | Three-dimentional label having moving patterns using fine patterns and microlens |
US10902185B1 (en) | 2015-12-30 | 2021-01-26 | Google Llc | Distributed collaborative storage with operational transformation |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6925476B1 (en) * | 2000-08-17 | 2005-08-02 | Fusionone, Inc. | Updating application data including adding first change log to aggreagate change log comprising summary of changes |
US20070111185A1 (en) * | 2005-10-24 | 2007-05-17 | Krebs Andreas S | Delta versioning for learning objects |
US20080040388A1 (en) * | 2006-08-04 | 2008-02-14 | Jonah Petri | Methods and systems for tracking document lineage |
US7529780B1 (en) * | 2005-12-30 | 2009-05-05 | Google Inc. | Conflict management during data object synchronization between client and server |
US7644109B2 (en) * | 2002-03-19 | 2010-01-05 | Netapp, Inc. | System and method for storage of snapshot metadata in a remote file |
US20100023562A1 (en) * | 2008-07-28 | 2010-01-28 | Kreuch Robert M | Extended system for accessing electronic documents with revision history in non-compatible repositories |
US20120059806A1 (en) * | 2009-02-10 | 2012-03-08 | Microsoft Corporation | Updating an inverted index in a real time fashion |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6993522B2 (en) | 2001-06-27 | 2006-01-31 | Microsoft Corporation | System and method for resolving conflicts detected during a synchronization session |
US7327383B2 (en) * | 2003-11-04 | 2008-02-05 | Eastman Kodak Company | Correlating captured images and timed 3D event data |
US7822711B1 (en) | 2003-12-31 | 2010-10-26 | Symantec Operating Corporation | Conflict resolution for a distributed file sharing system |
US20070088707A1 (en) | 2004-09-15 | 2007-04-19 | Scott Durgin | Method for providing extensible software components within a distributed synchronization system |
US7660809B2 (en) | 2005-01-31 | 2010-02-09 | Microsoft Corporation | Using a file server as a central shared database |
US7840540B2 (en) * | 2006-04-20 | 2010-11-23 | Datascout, Inc. | Surrogate hashing |
US20080020814A1 (en) * | 2006-06-02 | 2008-01-24 | Nicolas Kernene | Broadband gaming system and method |
US7813560B2 (en) * | 2007-02-28 | 2010-10-12 | Eastman Kodak Company | Classifying complete and incomplete date-time information |
WO2009042901A1 (en) * | 2007-09-28 | 2009-04-02 | Regents Of The University Of Minnesota | Image sensor with high dynamic range imaging and integrated motion detection |
US20090207998A1 (en) * | 2008-01-07 | 2009-08-20 | Angus Wall | Determining unique material identifier numbers using checksum values |
US8352870B2 (en) | 2008-04-28 | 2013-01-08 | Microsoft Corporation | Conflict resolution |
US8090681B2 (en) | 2008-06-26 | 2012-01-03 | Microsoft Corporation | Resolving conflicts in content management systems |
JP4698743B2 (en) * | 2009-01-22 | 2011-06-08 | シャープ株式会社 | Image compression method, image compression apparatus, image forming apparatus, computer program, and recording medium |
US8166038B2 (en) * | 2009-06-11 | 2012-04-24 | Kaufman Mark A | Intelligent retrieval of digital assets |
US8473543B2 (en) | 2009-07-06 | 2013-06-25 | Microsoft Corporation | Automatic conflict resolution when synchronizing data objects between two or more devices |
US7999657B2 (en) * | 2009-12-07 | 2011-08-16 | Konica Minolta Systems Laboratory, Inc. | Image registration method for image comparison and document authentication |
-
2011
- 2011-07-03 US US13/175,868 patent/US8533165B2/en active Active
-
2013
- 2013-08-30 US US14/014,878 patent/US9116942B2/en active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6925476B1 (en) * | 2000-08-17 | 2005-08-02 | Fusionone, Inc. | Updating application data including adding first change log to aggreagate change log comprising summary of changes |
US7644109B2 (en) * | 2002-03-19 | 2010-01-05 | Netapp, Inc. | System and method for storage of snapshot metadata in a remote file |
US20070111185A1 (en) * | 2005-10-24 | 2007-05-17 | Krebs Andreas S | Delta versioning for learning objects |
US7529780B1 (en) * | 2005-12-30 | 2009-05-05 | Google Inc. | Conflict management during data object synchronization between client and server |
US20090216815A1 (en) * | 2005-12-30 | 2009-08-27 | Braginsky David E | Conflict Management During Data Object Synchronization Between Client and Server |
US8311981B2 (en) * | 2005-12-30 | 2012-11-13 | Google Inc. | Conflict management during data object synchronization between client and server |
US20080040388A1 (en) * | 2006-08-04 | 2008-02-14 | Jonah Petri | Methods and systems for tracking document lineage |
US20100023562A1 (en) * | 2008-07-28 | 2010-01-28 | Kreuch Robert M | Extended system for accessing electronic documents with revision history in non-compatible repositories |
US8332359B2 (en) * | 2008-07-28 | 2012-12-11 | International Business Machines Corporation | Extended system for accessing electronic documents with revision history in non-compatible repositories |
US20120059806A1 (en) * | 2009-02-10 | 2012-03-08 | Microsoft Corporation | Updating an inverted index in a real time fashion |
Cited By (88)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10061828B2 (en) | 2006-11-20 | 2018-08-28 | Palantir Technologies, Inc. | Cross-ontology multi-master replication |
US9348499B2 (en) | 2008-09-15 | 2016-05-24 | Palantir Technologies, Inc. | Sharing objects that rely on local resources with outside servers |
US11693877B2 (en) | 2011-03-31 | 2023-07-04 | Palantir Technologies Inc. | Cross-ontology multi-master replication |
US9715518B2 (en) | 2012-01-23 | 2017-07-25 | Palantir Technologies, Inc. | Cross-ACL multi-master replication |
US20130346478A1 (en) * | 2012-06-10 | 2013-12-26 | Apple Inc. | Unified playback position |
US10862936B2 (en) | 2012-06-10 | 2020-12-08 | Apple Inc. | Unified playback position |
US10225300B2 (en) * | 2012-06-10 | 2019-03-05 | Apple Inc. | Unified playback position |
US10313761B2 (en) | 2013-03-14 | 2019-06-04 | Apple Inc. | Media playback across multiple devices |
US10140664B2 (en) | 2013-03-14 | 2018-11-27 | Palantir Technologies Inc. | Resolving similar entities from a transaction database |
US9495353B2 (en) | 2013-03-15 | 2016-11-15 | Palantir Technologies Inc. | Method and system for generating a parser and parsing complex data |
US10152531B2 (en) | 2013-03-15 | 2018-12-11 | Palantir Technologies Inc. | Computer-implemented systems and methods for comparing and associating objects |
US10120857B2 (en) | 2013-03-15 | 2018-11-06 | Palantir Technologies Inc. | Method and system for generating a parser and parsing complex data |
US8930897B2 (en) | 2013-03-15 | 2015-01-06 | Palantir Technologies Inc. | Data integration tool |
US8855999B1 (en) | 2013-03-15 | 2014-10-07 | Palantir Technologies Inc. | Method and system for generating a parser and parsing complex data |
US10762102B2 (en) | 2013-06-20 | 2020-09-01 | Palantir Technologies Inc. | System and method for incremental replication |
US9348851B2 (en) * | 2013-07-05 | 2016-05-24 | Palantir Technologies Inc. | Data quality monitors |
US8601326B1 (en) * | 2013-07-05 | 2013-12-03 | Palantir Technologies, Inc. | Data quality monitors |
US10970261B2 (en) * | 2013-07-05 | 2021-04-06 | Palantir Technologies Inc. | System and method for data quality monitors |
US20150012509A1 (en) * | 2013-07-05 | 2015-01-08 | Palantir Technologies, Inc. | Data quality monitors |
WO2015006248A1 (en) * | 2013-07-08 | 2015-01-15 | Dropbox, Inc. | Structured content item synchronization |
US9053165B2 (en) * | 2013-07-08 | 2015-06-09 | Dropbox, Inc. | Structured content item synchronization |
US20150012488A1 (en) * | 2013-07-08 | 2015-01-08 | Dropbox, Inc. | Structured Content Item Synchronization |
US9996229B2 (en) | 2013-10-03 | 2018-06-12 | Palantir Technologies Inc. | Systems and methods for analyzing performance of an entity |
US10579647B1 (en) | 2013-12-16 | 2020-03-03 | Palantir Technologies Inc. | Methods and systems for analyzing entity performance |
US11032065B2 (en) | 2013-12-30 | 2021-06-08 | Palantir Technologies Inc. | Verifiable redactable audit log |
US9338013B2 (en) | 2013-12-30 | 2016-05-10 | Palantir Technologies Inc. | Verifiable redactable audit log |
US10027473B2 (en) | 2013-12-30 | 2018-07-17 | Palantir Technologies Inc. | Verifiable redactable audit log |
US10791186B2 (en) | 2014-04-08 | 2020-09-29 | Dropbox, Inc. | Displaying presence in an application accessing shared and synchronized content |
US11172038B2 (en) | 2014-04-08 | 2021-11-09 | Dropbox, Inc. | Browser display of native application presence and interaction data |
US10965746B2 (en) | 2014-04-08 | 2021-03-30 | Dropbox, Inc. | Determining presence in an application accessing shared and synchronized content |
US10887388B2 (en) | 2014-04-08 | 2021-01-05 | Dropbox, Inc. | Managing presence among devices accessing shared and synchronized content |
US11683389B2 (en) | 2014-04-08 | 2023-06-20 | Dropbox, Inc. | Browser display of native application presence and interaction data |
US10853338B2 (en) | 2014-11-05 | 2020-12-01 | Palantir Technologies Inc. | Universal data pipeline |
US10191926B2 (en) | 2014-11-05 | 2019-01-29 | Palantir Technologies, Inc. | Universal data pipeline |
US9946738B2 (en) | 2014-11-05 | 2018-04-17 | Palantir Technologies, Inc. | Universal data pipeline |
US10242072B2 (en) | 2014-12-15 | 2019-03-26 | Palantir Technologies Inc. | System and method for associating related records to common entities across multiple lists |
US9483546B2 (en) | 2014-12-15 | 2016-11-01 | Palantir Technologies Inc. | System and method for associating related records to common entities across multiple lists |
US11526260B2 (en) | 2015-03-02 | 2022-12-13 | Dropbox, Inc. | Native application collaboration |
US10235022B2 (en) | 2015-03-02 | 2019-03-19 | Dropbox, Inc. | Native application collaboration |
US11132107B2 (en) | 2015-03-02 | 2021-09-28 | Dropbox, Inc. | Native application collaboration |
US9846528B2 (en) | 2015-03-02 | 2017-12-19 | Dropbox, Inc. | Native application collaboration |
US10103953B1 (en) | 2015-05-12 | 2018-10-16 | Palantir Technologies Inc. | Methods and systems for analyzing entity performance |
US9996595B2 (en) | 2015-08-03 | 2018-06-12 | Palantir Technologies, Inc. | Providing full data provenance visualization for versioned datasets |
US12038933B2 (en) | 2015-08-19 | 2024-07-16 | Palantir Technologies Inc. | Systems and methods for automatic clustering and canonical designation of related data in various data structures |
US10127289B2 (en) | 2015-08-19 | 2018-11-13 | Palantir Technologies Inc. | Systems and methods for automatic clustering and canonical designation of related data in various data structures |
US11392591B2 (en) | 2015-08-19 | 2022-07-19 | Palantir Technologies Inc. | Systems and methods for automatic clustering and canonical designation of related data in various data structures |
US9984428B2 (en) | 2015-09-04 | 2018-05-29 | Palantir Technologies Inc. | Systems and methods for structuring data from unstructured electronic data files |
US12124465B2 (en) | 2015-09-04 | 2024-10-22 | Palantir Technologies Inc. | Systems and methods for database investigation tool |
US9965534B2 (en) | 2015-09-09 | 2018-05-08 | Palantir Technologies, Inc. | Domain-specific language for dataset transformations |
US11080296B2 (en) | 2015-09-09 | 2021-08-03 | Palantir Technologies Inc. | Domain-specific language for dataset transformations |
US10417120B2 (en) | 2015-09-14 | 2019-09-17 | Palantir Technologies Inc. | Pluggable fault detection tests for data pipelines |
US10936479B2 (en) | 2015-09-14 | 2021-03-02 | Palantir Technologies Inc. | Pluggable fault detection tests for data pipelines |
US9772934B2 (en) | 2015-09-14 | 2017-09-26 | Palantir Technologies Inc. | Pluggable fault detection tests for data pipelines |
US10817655B2 (en) | 2015-12-11 | 2020-10-27 | Palantir Technologies Inc. | Systems and methods for annotating and linking electronic documents |
US9760556B1 (en) | 2015-12-11 | 2017-09-12 | Palantir Technologies Inc. | Systems and methods for annotating and linking electronic documents |
US9514414B1 (en) | 2015-12-11 | 2016-12-06 | Palantir Technologies Inc. | Systems and methods for identifying and categorizing electronic documents through machine learning |
US11170345B2 (en) | 2015-12-29 | 2021-11-09 | Dropbox Inc. | Content item activity feed for presenting events associated with content items |
US11875028B2 (en) | 2015-12-30 | 2024-01-16 | Dropbox, Inc. | Native application collaboration |
US11425175B2 (en) | 2016-04-04 | 2022-08-23 | Dropbox, Inc. | Change comments for synchronized content items |
US11943264B2 (en) | 2016-04-04 | 2024-03-26 | Dropbox, Inc. | Change comments for synchronized content items |
US10382502B2 (en) | 2016-04-04 | 2019-08-13 | Dropbox, Inc. | Change comments for synchronized content items |
US9678850B1 (en) | 2016-06-10 | 2017-06-13 | Palantir Technologies Inc. | Data pipeline monitoring |
US10318398B2 (en) | 2016-06-10 | 2019-06-11 | Palantir Technologies Inc. | Data pipeline monitoring |
US10007674B2 (en) | 2016-06-13 | 2018-06-26 | Palantir Technologies Inc. | Data revision control in large-scale data analytic systems |
US11106638B2 (en) | 2016-06-13 | 2021-08-31 | Palantir Technologies Inc. | Data revision control in large-scale data analytic systems |
US10621314B2 (en) | 2016-08-01 | 2020-04-14 | Palantir Technologies Inc. | Secure deployment of a software package |
US10133782B2 (en) | 2016-08-01 | 2018-11-20 | Palantir Technologies Inc. | Techniques for data extraction |
US11106692B1 (en) | 2016-08-04 | 2021-08-31 | Palantir Technologies Inc. | Data record resolution and correlation system |
US10740298B2 (en) * | 2016-10-12 | 2020-08-11 | Microsoft Technology Licensing, Llc | File synchronization with reduced conflicts in computing systems |
WO2018071276A1 (en) * | 2016-10-12 | 2018-04-19 | Microsoft Technology Licensing, Llc | File synchronization in computing systems |
US10133588B1 (en) | 2016-10-20 | 2018-11-20 | Palantir Technologies Inc. | Transforming instructions for collaborative updates |
US10503574B1 (en) | 2017-04-10 | 2019-12-10 | Palantir Technologies Inc. | Systems and methods for validating data |
US11221898B2 (en) | 2017-04-10 | 2022-01-11 | Palantir Technologies Inc. | Systems and methods for validating data |
US11074277B1 (en) | 2017-05-01 | 2021-07-27 | Palantir Technologies Inc. | Secure resolution of canonical entities |
US10956406B2 (en) | 2017-06-12 | 2021-03-23 | Palantir Technologies Inc. | Propagated deletion of database records and derived data |
US10789002B1 (en) * | 2017-10-23 | 2020-09-29 | EMC IP Holding Company LLC | Hybrid data deduplication for elastic cloud storage devices |
US10235533B1 (en) | 2017-12-01 | 2019-03-19 | Palantir Technologies Inc. | Multi-user access controls in electronic simultaneously editable document editor |
US12079357B2 (en) | 2017-12-01 | 2024-09-03 | Palantir Technologies Inc. | Multi-user access controls in electronic simultaneously editable document editor |
US11645250B2 (en) * | 2017-12-08 | 2023-05-09 | Palantir Technologies Inc. | Detection and enrichment of missing data or metadata for large data sets |
US11061874B1 (en) | 2017-12-14 | 2021-07-13 | Palantir Technologies Inc. | Systems and methods for resolving entity data across various data structures |
US10838987B1 (en) | 2017-12-20 | 2020-11-17 | Palantir Technologies Inc. | Adaptive and transparent entity screening |
US10866792B1 (en) | 2018-04-17 | 2020-12-15 | Palantir Technologies Inc. | System and methods for rules-based cleaning of deployment pipelines |
US10754822B1 (en) | 2018-04-18 | 2020-08-25 | Palantir Technologies Inc. | Systems and methods for ontology migration |
US12032476B2 (en) | 2018-04-18 | 2024-07-09 | Palantir Technologies Inc. | Data unit test-based data management system |
US10496529B1 (en) | 2018-04-18 | 2019-12-03 | Palantir Technologies Inc. | Data unit test-based data management system |
US11294801B2 (en) | 2018-04-18 | 2022-04-05 | Palantir Technologies Inc. | Data unit test-based data management system |
US11061542B1 (en) | 2018-06-01 | 2021-07-13 | Palantir Technologies Inc. | Systems and methods for determining and displaying optimal associations of data items |
US10795909B1 (en) | 2018-06-14 | 2020-10-06 | Palantir Technologies Inc. | Minimized and collapsed resource dependency path |
Also Published As
Publication number | Publication date |
---|---|
US20140006361A1 (en) | 2014-01-02 |
US9116942B2 (en) | 2015-08-25 |
US8533165B2 (en) | 2013-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8533165B2 (en) | Conflict resolution via metadata examination | |
US8965840B2 (en) | Automatic synchronization conflict resolution | |
RU2422890C2 (en) | Resource creation using ontology | |
CN103823813B (en) | Electric terminal historical operation records processing method and processing device | |
US20140324776A1 (en) | File management with placeholders | |
US20170364497A1 (en) | Digital document change conflict resolution | |
US10572544B1 (en) | Method and system for document similarity analysis | |
US20180101544A1 (en) | File synchronization in computing systems | |
CN104281644A (en) | Filename information display method and device | |
CN113064556A (en) | BIOS data storage method, device, equipment and storage medium | |
US8862556B2 (en) | Difference analysis in file sub-regions | |
EP1733324A1 (en) | Method for finding data, research engine and microprocessor therefor | |
CN110647421B (en) | Database processing method, device and system and electronic equipment | |
CN107341100A (en) | The collocation method and device of camera parameter | |
CN110069455B (en) | A file merging method and device | |
CN107748801A (en) | News recommendation method, device, terminal device and computer-readable storage medium | |
EP1710718A2 (en) | Systems and methods for performing streaming checks on data format for UDTs | |
CN117632527A (en) | Data writing method, device, equipment and medium based on primary key conflict detection | |
EP1085447B1 (en) | Method and device for model-solving and utilisation thereof for the detection of attacks against information processing systems | |
US10489466B1 (en) | Method and system for document similarity analysis based on weak transitive relation of similarity | |
Zhao et al. | Primary IgA nephropathy with nephrotic-range proteinuria in Chinese children | |
CN113448923B (en) | File generation method, device and terminal | |
WO2022249236A1 (en) | Software design assistance system, software design assistance method, and software design assistance program | |
CN117033305B (en) | Method and device for detecting four-way property of electronic file package | |
FR3084178A1 (en) | DIRECT ACCESS IN MEMORY |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: MICROSOFT CORPORATION, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:AKINYEMI, ADEDEJI OLUMUYIWA;ABARAOHA, OKACEY CHIDINMA;REMICK, BRIAN DOUGLAS;REEL/FRAME:027232/0213 Effective date: 20110629 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034544/0001 Effective date: 20141014 |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 12 |