US5432928A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Updating objects stored in a permanent container while preserving logical contiguity
Assignee: Microsoft Technology Licensing LLC
•
Filing: 1992-11-10
•
Granted: 1995-07-11
•
Expires: 2012-11-10
Abstract
Abstract A computer system and method for updating an object stored in a container. A container stored on a storage device includes a plurality of objects being ordered from a first object to a last object. One of the objects in the container is selected for updating and is read from the container into a computer memory where it is edited. Next, each of the objects ordered in the container after the selected object is moved to a new location within the container so that the selected object is overwritten. The container is then truncated after the last moved object. The edited selected object is then written from the memory and appended to the container.
Inventors
- 👤 Andrew G. Sherman
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-30 10:15
CPC Classifications
G; G06; G06F; G06F16/00; G06F16/20; G06F16/28; G06F16/289; Y; Y10; Y10S; Y10S706/00; Y10S706/902; Y10S706/934; Y10S707/00; Y10S707/99931; Y10S707/99933; Y10S707/99941; Y10S707/99942
Claims Analysis
Total Claims: 21
Claim 1
Independent Claim
229 words
A method executed in a computer system for updating an object stored in a container, the container having a plurality of objects, the objects being ordered in the container from a first object to a last object, the computer system having a memory and a storage device, the container being stored on the storage device, the method comprising the steps of: selecting an object to update; determining a beginning address of the selected object and a size of the selected object; with reference to the beginning address and the size of the selected object, reading the selected object from the container into the memory; editing the selected object while the selected object is in the memory; determining a size of the edited selected object; determining a beginning address and an ending address of a block of objects, the block comprising objects ordered in the container following the unedited selected object; with reference to the beginning and ending addresses of the block of objects, moving each of the objects of the block to a new location within the container while preserving the block ordering; determining an ending address of a last one of the moved objects; and with reference to the size of the edited selected object and the ending address of the last one of the moved objects, writing the edited selected object from the memory to the container.
Claim 2
Independent Claim
229 words
A method executed in a computer system for updating an object stored in a container, the container having a plurality of objects, the objects being ordered in the container from a first object to a last object, the computer system having a memory and a storage device, the container being stored on the storage device, the method comprising the steps of: selecting an object to update; determining a beginning address of the selected object and a size of the selected object; with reference to the beginning address and the size of the selected object, reading the selected object from the container into the memory; editing the selected object while the selected object is in the memory; determining a size of the edited selected object; determining a beginning address and an ending address of a block of objects, the block comprising objects ordered in the container following the unedited selected object; with reference to the beginning and ending addresses of the block of objects, moving each of the objects of the block to a new location within the container while preserving the block ordering; determining an ending address of a last one of the moved objects; and with reference to the size of the edited selected object and the ending address of the last one of the moved objects, writing the edited selected object from the memory to the container.
Claim 3
Dependent Claim
27 words
The method of claim 1 wherein the step of moving moves a first ordered object of the moved objects to a location of the unedited selected object.
Claim 4
Dependent Claim
33 words
The method of claim 2 wherein the step of moving moves the first ordered object of the moved objects to a new address beginning with a beginning address of the unedited selected object.
Claim 5
Dependent Claim
58 words
The method of claim 1, further including the step of truncating the container after a last ordered object of the moved objects has been moved to its new location, the step of truncating occurring after the moved objects have been moved to their new location and before writing the edited selected object from the memory to the container.
Claim 6
Dependent Claim
68 words
The method of claim 4 further comprising the step of determining the ending address of the moved objects, and wherein the step of writing the edited selected object from the memory to the container writes the edited selected object to a location after the new location within the container of the last ordered object of the moved objects, the step of writing occurring after the step of moving.
Claim 7
Dependent Claim
62 words
The method of claim 1 wherein the container includes an object list containing a list of the objects stored in the container, the object list being located before the first object in the container and wherein the step of selecting an object to update includes the step of searching the list to determine if the selected object is stored in the container.
Claim 8
Dependent Claim
49 words
The method of claim 1 wherein each object has a size and wherein the step of reading the selected object includes the steps of determining the beginning address of the first ordered object, and locating the selected object based on the sizes of the objects before the selected object.
Claim 9
Independent Claim
168 words
A method executed in a computer system for saving data, the computer system having a memory and a storage device, the storage device having a file with a plurality of objects stored logically contiguously from a first address to a last address, each object containing data and having a starting address and an ending address, the method comprising the steps of: generating in memory a revised version of a target object stored on the storage device; determining the starting address and the ending address in the storage device of the target object; moving each object stored logically contiguously after the ending address of the target object to a new address so as to maintain logical contiguity of the objects thus moved and to at least partially overwrite the target object; determining an address after the last address of a last ordered one of the moved objects; and writing the revised version of the target object from the memory to the storage device starting at the address thus determined.
Claim 10
Independent Claim
168 words
A method executed in a computer system for saving data, the computer system having a memory and a storage device, the storage device having a file with a plurality of objects stored logically contiguously from a first address to a last address, each object containing data and having a starting address and an ending address, the method comprising the steps of: generating in memory a revised version of a target object stored on the storage device; determining the starting address and the ending address in the storage device of the target object; moving each object stored logically contiguously after the ending address of the target object to a new address so as to maintain logical contiguity of the objects thus moved and to at least partially overwrite the target object; determining an address after the last address of a last ordered one of the moved objects; and writing the revised version of the target object from the memory to the storage device starting at the address thus determined.
Claim 11
Dependent Claim
35 words
The method of claim 8 wherein each object has a size and the step of determining determines the starting address of the target object based on the sizes of the objects before the target object.
Claim 12
Dependent Claim
166 words
A computer system for updating an object stored in a container, the container having a plurality of objects, the objects being ordered in the container from a first object to a last object, the computer system having a memory and a storage device, the container being stored on the storage device, the system comprising: means for determining the beginning and ending addresses of objects in the container; means for selecting an object whose beginning and ending addresses have been determined to update; means for loading the selected object from the container into the memory; means for editing the loaded selected object; means for moving the objects in the container after the selected object to a set of destination locations within the container, a first location within the set corresponding to the location of the beginning selected object; means for expanding the container size; and means for writing the edited selected object from the memory to the container starting immediately after a last of the moved objects.
Claim 13
Dependent Claim
166 words
A computer system for updating an object stored in a container, the container having a plurality of objects, the objects being ordered in the container from a first object to a last object, the computer system having a memory and a storage device, the container being stored on the storage device, the system comprising: means for determining the beginning and ending addresses of objects in the container; means for selecting an object whose beginning and ending addresses have been determined to update; means for loading the selected object from the container into the memory; means for editing the loaded selected object; means for moving the objects in the container after the selected object to a set of destination locations within the container, a first location within the set corresponding to the location of the beginning selected object; means for expanding the container size; and means for writing the edited selected object from the memory to the container starting immediately after a last of the moved objects.
Claim 14
Dependent Claim
30 words
The system of claim 10 including means for truncating the container after the last of the moved objects before writing the edited selected object from the memory to the container.
Claim 15
Dependent Claim
62 words
The system of claim 10 wherein the container includes an object list containing a list of the objects stored in the container, the object list being located before the first object in the container and wherein the step of selecting an object to update includes the step of searching the list to determine if the selected object is stored in the container.
Claim 16
Dependent Claim
47 words
The system of claim 10 wherein each object has a size, the system further comprising means for determining the size of each object, and wherein the means for loading includes means for locating the selected object based on the sizes of the objects before the selected object.
Claim 17
Dependent Claim
168 words
A computer system for saving data, the computer system having a memory and a storage device, the storage device having a plurality of objects stored logically contiguously from a first address to a last address, each object containing data and having a starting address and an ending address, the system comprising: means for selecting a target object stored on the storage device; means for reading the target object into memory; means for generating in memory an updated version of the target object; means for determining the starting and ending addresses of the target object; means for moving each object stored logically contiguously after the ending address of the target object to a new address so as to maintain logical contiguity of the objects thus moved and to at least partially overwrite the target object; and means for writing the updated version of the target object from the memory to the storage device with a starting address after the last address of a last one of the moved objects.
Claim 18
Dependent Claim
168 words
A computer system for saving data, the computer system having a memory and a storage device, the storage device having a plurality of objects stored logically contiguously from a first address to a last address, each object containing data and having a starting address and an ending address, the system comprising: means for selecting a target object stored on the storage device; means for reading the target object into memory; means for generating in memory an updated version of the target object; means for determining the starting and ending addresses of the target object; means for moving each object stored logically contiguously after the ending address of the target object to a new address so as to maintain logical contiguity of the objects thus moved and to at least partially overwrite the target object; and means for writing the updated version of the target object from the memory to the storage device with a starting address after the last address of a last one of the moved objects.
Claim 19
Dependent Claim
48 words
The system of claim 14 wherein each object has a size, the system further comprising means for determining the size of each object, and wherein the means for determining determines the starting address of the target object based on the sizes of the objects before the target object.
Claim 20
Independent Claim
166 words
A method executed in a computer system for updating an object stored in a container, the container having a plurality of objects, the objects being ordered in the container from a first object to a last object, the computer system having a memory and a storage device, the container being stored on the storage device, the method comprising the steps of: reading each object from the container into the memory; selecting one of the objects in the memory to edit; editing the selected object while the selected object is in memory; moving each of the objects ordered in the container following the unedited selected object to a new location within the container; and after the step of moving, writing the edited selected object from the memory to the container by writing the edited selected object to a location after the new location within the container of the last ordered object of the moved objects, expanding the container size, when necessary, to contain the edited selected object.
Claim 21
Independent Claim
166 words
A method executed in a computer system for updating an object stored in a container, the container having a plurality of objects, the objects being ordered in the container from a first object to a last object, the computer system having a memory and a storage device, the container being stored on the storage device, the method comprising the steps of: reading each object from the container into the memory; selecting one of the objects in the memory to edit; editing the selected object while the selected object is in memory; moving each of the objects ordered in the container following the unedited selected object to a new location within the container; and after the step of moving, writing the edited selected object from the memory to the container by writing the edited selected object to a location after the new location within the container of the last ordered object of the moved objects, expanding the container size, when necessary, to contain the edited selected object.
References Cited (Backward Citations)
US2840304A
Cited
US2945213A
Cited
US4771375A
Cited
US4660130A
Cited
US5136706A
Cited
US5129084A
Cited
US5287496A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 1998-07-10 | 1999-01-09 | 1999-07-11 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2002-07-10 | 2003-01-09 | 2003-07-11 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2006-07-10 | 2007-01-09 | 2007-07-11 | $7700.00 | Window Closed / Lapsed |