Patent ID: 7451166

Claim:
A method, in a data processing system, for storing data organized as key-value pairs, comprising: aggregating data, that does not need to be saved every time the data changes, in memory, the agggregation taking place between write operations to persistent storage; periodically writing changed portions of the aggregated data to persistent storage in a sequential manner; updating a data structure to point to locations in the persistent storage where a most recent value for each key of one or more key-value pairs of the changed portions of the data is stored, wherein updating the data structure includes updating a linked list of the data structure to include pointers to locations in the persistent storage where the most recent value for each key of the one or more key-value pairs of the changed portions of the data is stored, and wherein updating the linked list of the data structure includes: determining, for each key of the one or more key-value pairs, if an entry for the key exists in a first hash table associated with the data structure, wherein entries in the first hash table are associated with keys of the key-value pairs of the data and contain pointers to entries in the linked list corresponding to the same keys; identifying a linked list entry in the linked list corresponding to the entry in the first hash table, if the first hash table has an entry for the key; and overwriting a pointer value stored in the linked list entry with a new pointer that points to the most recent location in persistent storage where a value associated with the key is stored.