| Determining priority between data items -> Monitor Keywords |
|
Determining priority between data itemsUSPTO Application #: 20080104136Title: Determining priority between data items Abstract: One embodiment of the present invention enables nodes or endpoints involved with synchronization of data items to determine which version of a data item (if any) has priority over another version of that same data item. Within the present embodiment, when a data item Is modified by a node, it is presumed that the modified data item takes priority aver the previous version of that data item. Therefore, the “descendant” data item (modified) takes precedence over its “ancestor” data item (previous version). By including this type of “pedigree” information with data items involved with synchronization between different nodes or endpoints, the present embodiment enables the endpoints to determine which version of a data item (if any) has priority over another version of that same data item. (end of abstract) Agent: Berry & Associates P.C. - Los Angeles, CA, US Inventors: William L. Mills, Alvin I. Pivowar USPTO Applicaton #: 20080104136 - Class: 707201000 (USPTO) Related Patent Categories: Data Processing: Database And File Management Or Data Structures, File Or Database Maintenance, Coherency (e.g., Same View To Multiple Users) The Patent Description & Claims data below is from USPTO Patent Application 20080104136. Brief Patent Description - Full Patent Description - Patent Application Claims CROSS REFERENCE TO RELATED APPLICATIONS [0001] This application is a continuation application of application Ser. No. 10/159,461, entitled "DETERMINING PRIORITY BETWEEN DATA ITEMS," filed May 31, 2002, now allowed, which claims priority to Provisional Application Ser. No. 60/377,713, entitled "SYSTEM AND METHOD FOR SYNCHRONIZING COMPUTER DATABASES," filed May 2, 2002. The subject matter in the above-identified co-pending and commonly owned application(s) is incorporated herein by reference. TECHNICAL FIELD [0002] The present invention relates generally to the field of databases. Specifically, the present invention relates to the field of synchronizing data between multiple nodes. BACKGROUND ART [0003] In the realm of handheld computer systems (commonly referred to as personal digital assistants or PDAs), it is not uncommon for a data set to exist and be maintained both on the PDA and on at least one other computing device. For example, a user may maintain a calendar or address book on both his or her PDA and on another computer system (e.g., a personal computer system such as a desktop or laptop). [0004] The entries in the data set can be referred to as records or data objects. When a change is made to a record in the data set residing on one device (hereinafter, also referred to as a node), it is desirable to have the data set on the other node be updated as well, so that the data set is synchronized on both nodes. Accordingly, processes have been developed to facilitate synchronizing the data sets on both nodes. These synchronization ("sync") processes are known in the art. [0005] Currently, each record in a data set may be identified by a unique record identifier (record ID). To prevent duplication of record IDS, the task of assigning IDS to records is relegated to the PDA. [0006] Generally, synchronization is performed using either a "slow sync" technique or a "fast sync" technique. Using a slow sync, all of the records are transferred between nodes; the data set on one node is transferred to the other. The records in each data set are then compared in order to determine which records have changed since the last sync, and the respective data sets are updated accordingly. [0007] Fast syncs are accommodated by tagging records when they are modified. Typically, a bit associated with each record is set to one value or another to indicate whether or not that record has been changed since the last sync; the bits that have been set are often referred to as "dirty" bits. Using a fast sync, only the changes made to the data set on each node since the last sync are transferred to the other node. After the fast sync is performed, the dirty bits are cleared. [0008] Although fast syncs are preferred, there are occasions when slow syncs need to be performed. For instance, it is becoming more common for people to use more than one computer system. Many people use a computer system at home and another one at work, for example. If a user performs a fast sync between the PDA and one of the computer systems, the dirty bits would be cleared. Consequently, the records on the PDA that have changed cannot be identified using the dirty bits. Therefore, a subsequent sync between the PDA and another computer system will use a slow sync to identify changes made to the records since the last time these latter two nodes had been synched. [0009] Thus, one problem with the common synchronization techniques is that slow syncs are occurring more frequently as a growing number of people interact with multiple computer systems with their PDA. Slow syncs take longer to complete than fast syncs, and so they are less desirable. Also, the time needed to complete slow syncs is increasing as memory sizes increase for PDAs. [0010] Another issue with typical synchronization techniques is that they are limited with respect to the different types of syncs that can now occur. Traditionally, synchronization occurs between a PDA and one or mare personal computer systems as described above. However, the paradigm in which the PDA serves in essence as the nexus between the user's home and office computer systems is not as applicable as it once was. As computer systems are networked, multiple communication pathways between PDAs and computer systems can exist, and synchronization between multiple devices needs to be supported. The notion of a single source (e.g., the PDA) for record IDS is not as workable as before. [0011] Also, records are frequently shared between users and quite often are distributed and stored across many nodes. Some records may be accessible by multiple users working from different nodes. In any event, different users may update a record in different ways, and the modified record may be distributed over different pathways. Along the way, the record may be further modified. As a result, different versions of the same record may reach a node, causing a conflict to arise as to which version of the record should take precedence over another. Using contemporary synchronization techniques, these records are unnecessarily replicated at the destination node, slowing down syncs while consuming memory. User intervention is then usually required to glean which records are correct and which can be discarded. SUMMARY OF THE INVENTION [0012] Accordingly, given that different versions of the same record may reach a node, a need exists for a method and/or system that enables the node to more easily determine which version of the record (if any) takes precedence over the others. The present invention provides one or more embodiments which accomplish the above mentioned need. [0013] Specifically, one embodiment of the present invention enables nodes or endpoints involved with synchronization of data items to determine which version of a data item (if any) has priority over another version of that same data item. Within the present embodiment, when a data item is modified by a node, it is presumed that the modified data item takes priority over the previous version of that data item. Therefore, the "descendant" data item (modified) takes precedence over its "ancestor" data item (previous version). By including this type of "pedigree" information with data items involved with synchronization between different nodes or endpoints, the present embodiment enables the endpoints to determine which version of a data item (if any) has priority over another version of that same data item. [0014] In another embodiment, the present invention provides a method for determining priority between two data items during a synchronization process between two nodes. The method includes determining if any data items have matching identities during the synchronization process. Furthermore, the method includes determining if the content of a first and second data items are unequal, in response to the first and second data items having matching identities. Additionally, the method includes determining whether the first data item descended from the second data item, in response to the content of the first and second data items being unequal. The method also includes determining that the first data item has priority over the second data item, in response to the first data item descending from the second data Item. [0015] In yet another embodiment, the present invention includes a computer implemented method for determining priority between two data items during a synchronization process between two nodes. The computer implemented method includes determining whether a first and second data items have matching identities during the synchronization process. Additionally, the computer implemented method includes determining if the content of the first and second data items are unequal. The computer implemented method also includes determining whether the first data item descended from the second data item, in response to the first and second data items having matching identity and the content of the first and second data items being unequal. Moreover, the computer implemented method includes determining that the first data item has priority over the second data item, in response to the first data item descending from the second data item. [0016] In still another embodiment, the present invention includes a computer-usable medium having computer-readable code embodied therein for causing a computing device to perform particular operations. The computer-usable medium causes the computing device to perform: deciding if a first and second data items have matching identities during a synchronization process between two nodes; deciding if the content of the first and second data items are unequal; deciding if the first data item descended from the second data item, in response to the first and second data items having matching identities and the content of the first and second data items being unequal; and deciding that the first data item has priority over the second data item, in response to the first data item descending from the second data item. [0017] The present invention provides these advantages and others which will no doubt become obvious to those of ordinary skill in the art after having read the following detailed description of embodiments in accordance with the present invention. BRIEF DESCRIPTION OF THE DRAWINGS [0018] The accompanying drawings, which are incorporated in and form a part of this specification, illustrate embodiments of the invention and, together with the description, serve to explain the principles of the invention. [0019] FIG. 1A is a block diagram of an exemplary handheld computer system upon which embodiments of the present invention may be practiced. Continue reading... Full patent description for Determining priority between data items Brief Patent Description - Full Patent Description - Patent Application Claims Click on the above for other options relating to this Determining priority between data items patent application. ### 1. Sign up (takes 30 seconds). 2. Fill in the keywords to be monitored. 3. Each week you receive an email with patent applications related to your keywords. Start now! - Receive info on patent apps like Determining priority between data items or other areas of interest. ### Previous Patent Application: Data processing system Next Patent Application: Online incremental deferred integrity processing and maintenance of rolled in and rolled out data Industry Class: Data processing: database and file management or data structures ### FreshPatents.com Support Thank you for viewing the Determining priority between data items patent info. IP-related news and info Results in 0.0972 seconds Other interesting Feshpatents.com categories: Qualcomm , Schering-Plough , Schlumberger , Seagate , Siemens , Texas Instruments , |
||