A method of updating data stored on a computer storage device with new data, the storage device containing records of data, each record having a primary pointer and an indicator, the records stored as a linked list that is linked by the primary pointers, the method comprising the steps of:
- locating a record that contains data to be updated, the record being contained in the storage device comprising a plurality of bits such that once a bit is changed from a predefined bit value to another bit value the changed bit cannot be individually changed back to the predefined bit value, the data including bits that have been changed from the predefined bit value to the other bit value, the indicator of the located record having each bit set to the predefined bit value;
- allocating a record to contain the new data, the record being allocated in the storage device, each bit of the allocated record being set to the predefined bit value;
- writing the new data to the allocated record;
- and
- setting the indicator in the located record to point to the allocated record and to indicate that the new data in the allocated record is an update of the data in the located record by changing at least one bit of the indicator from the predefined bit value to the other bit value;
- wherein the step of locating a record includes the steps of:
- selecting a record at which to start a traversal of the linked list;
- and
- repeating, until the selected record contains the data to be updated, the steps of:
- determining whether at least one bit of the indicator is not set to the predefined bit value to indicate that the selected record has been superseded;
- selecting the record pointed to by the primary pointer of the selected record when each bit of the indicator is set to the predefined bit value indicating that the selected record has not been superseded;
- and
- selecting the record pointed to by the indicator of the selected record when at least one bit of the indicator is not set to the predefined bit value indicating that the selected record has been superseded.