Method and apparatus for preserving changes to data
First Claim
1. A method of preserving a change to data on a handheld computer using a non-volatile memory and a first computer, the handheld computer including a volatile memory and the non-volatile memory, the volatile memory including the data, the first computer including a copy of the data, the copy of the data periodically being synchronized with the data on the handheld computer, the method comprising:
- creating a new version of the data by updating the data in the volatile memory to reflect the change;
responsive to updating the data in the volatile memory to create the new version of the data, storing a record of the change to the data in the non-volatile memory;
wherein said record of change includes information for reconstructing the new version of the data based on the version of the data that existed prior to said change;
responsive to a loss of the data in the volatile memory, causing transfer of the copy of the data from the first computer to the volatile memory of the handheld computer; and
after transferring the copy of the data from the first computer to the volatile memory of the handheld computer, using the record of the change in the non-volatile memory to reconstruct the new version of the data based on the data from the first computer.
5 Assignments
0 Petitions
Accused Products
Abstract
Handheld computers, e.g. a Palm® Connected Organizer, typically use volatile memory such as random access memory (RAM) to store user data. If the volatile memory of the handheld computer were lost before the data in it is synchronized with the user'"'"'s computer, then the user'"'"'s changes would be lost. In order to preserve the changes, records of changes made on the handheld computer can be stored in a non-volatile memory on the handheld computer and/or transmitted over a wireless communication channel to a computer. This computer may house multiple users'"'"' data. After a failure of the handheld computer'"'"'s memory, the contents of the handheld computer memory can be reconstructed using the most recent copy of the data on the user'"'"'s computer and the records of changes in the non-volatile memory of the handheld computer and/or the computer that is receiving change records over the wireless communication channel. A number of techniques may be employed to control costs associated with using the wireless communication channel such as adding the change records to other packets. Also, rules and schedules can control the use of the wireless communication channel.
-
Citations
27 Claims
-
1. A method of preserving a change to data on a handheld computer using a non-volatile memory and a first computer, the handheld computer including a volatile memory and the non-volatile memory, the volatile memory including the data, the first computer including a copy of the data, the copy of the data periodically being synchronized with the data on the handheld computer, the method comprising:
-
creating a new version of the data by updating the data in the volatile memory to reflect the change;
responsive to updating the data in the volatile memory to create the new version of the data, storing a record of the change to the data in the non-volatile memory;
wherein said record of change includes information for reconstructing the new version of the data based on the version of the data that existed prior to said change;
responsive to a loss of the data in the volatile memory, causing transfer of the copy of the data from the first computer to the volatile memory of the handheld computer; and
after transferring the copy of the data from the first computer to the volatile memory of the handheld computer, using the record of the change in the non-volatile memory to reconstruct the new version of the data based on the data from the first computer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
transmitting the record of the change to the data from the non-volatile memory to the first computer via the wireless communication channel to the device; and
transferring the copy of the data and a copy of the record of change from the first computer to the volatile memory of the handheld computer.
-
-
3. The method of claim 2, wherein the handheld computer has packets to be transmitted, wherein the step of transmitting the record of the change to the data from the non-volatile memory via the wireless communication channel includes transmitting the packets, the method further including:
-
identifying a packet that (a) is being sent from the handheld computer to the device external to the handheld computer to convey information unrelated to the change, and (b) has sufficient unused space to store said record of change; and
conveying the change to the first computer by piggybacking a copy of the record of change to the packet when the packet is sent to the device.
-
-
4. The method of claim 3, wherein the step of identifying or piggybacking is performed in response to a predetermined amount of usage of the non-volatile memory.
-
5. A computer-readable medium carrying one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 4.
-
6. A computer-readable medium carrying one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 2.
-
7. A particular handheld computer configured to carryout, as the handheld computer, the method recited in claim 2.
-
8. A computer-readable medium carrying one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 3.
-
9. A particular handheld computer configured to carryout, as the handheld computer, the method recited in claim 3.
-
10. A particular handheld computer configured to carryout, as the handheld computer, the method recited in claim 4.
-
11. The method of claim 1, wherein the data comprises one or more of a calendar entry, a contact list entry, a note entry and a to do list entry.
-
12. A computer-readable medium carrying one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 11.
-
13. A particular handheld computer configured to carryout, as the handheld computer, the method recited in claim 11.
-
14. A computer-readable medium carrying one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the method recited in claim 1.
-
15. A particular handheld computer configured to carryout, as the handheld computer, the method recited in claim 1.
-
16. A method used for preserving a change to data on a handheld computer using a non-volatile memory, a first computer, and a communication channel, the handheld computer including a volatile memory and the non-volatile memory, the volatile memory including the data, the first computer including a copy of the data, the copy of the data periodically being synchronized with the data on the handheld computer, the communication channel supporting communication between the handheld computer and a device external to the handheld computer, and the handheld computer transmitting packets over the communication channel to the device, the method comprising:
-
creating a new version of the data by updating the data in the volatile memory to reflect the change;
responsive to updating the data in the volatile memory to create the new version of the data, storing a record of the change to the data in the non-volatile memory;
wherein said record of change includes information for reconstructing the new version of the data based on the version of the data that existed prior to said change;
identifying a packet that (a) is being sent from the handheld computer to the device external to the handheld computer to convey information unrelated to the change, and (b) has sufficient unused space to store said record of change; and
conveying the change to the first computer by piggybacking a copy of the record of change to the packet when the packet is sent to the device; and
responsive to a loss of the data in the volatile memory, restoring the data in the volatile memory to reflect the change based on the copy of the record of change from the external device, and the copy of the data stored on the first computer. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27)
-
Specification