Time-addressed database management system
Abstract
A method of constructing a database for a database application, the method involving for each of a plurality of transactions, receiving input from a user via the database application; constructing a corresponding record that embodies the received input for that transaction; appending a time address to the corresponding record for that transaction, wherein the time address identifies when the corresponding transaction was completed; and storing the corresponding record for that transaction in a non-volatile data storage, wherein the time address for that corresponding record is permanently associated with that stored corresponding record and wherein the database application during normal operation prevents any overwriting of that stored corresponding record with any other record.
Claims
exact text as granted — not AI-modified1 . A method of constructing a database for a database application, said method comprising:
for each of a plurality of transactions, receiving input from a user via the database application; constructing a corresponding record that embodies the received input for that transaction; appending a time address to the corresponding record for that transaction, wherein the time address identifies when the corresponding transaction was completed; and storing the corresponding record for that transaction in a non-volatile data storage, wherein the time address for that corresponding record is permanently associated with that stored corresponding record and wherein the database application during normal operation prevents any overwriting of that stored corresponding record with any other data.
2 . The method of claim 1 further comprising, for each of the plurality of transactions, adding a primary key to the corresponding record.
3 . The method of claim 1 wherein, for all transactions handled by the database application, storing the corresponding record comprises adding that corresponding record to a single common accounting transaction file in the non-volatile data storage.
4 . The method of claim 1 wherein, for all transactions handled by the database application, storing the corresponding record comprises appending that corresponding record to the end of a single common file in the non-volatile data storage.
5 . The method of claim 1 further comprising responding to a command to delete a particular one of the stored records by:
generating a new version of the stored record; flagging the new version of the stored record as deleted; adding a time address to the new version of the stored record, wherein the added time address is different from the time address of said particular stored record; and storing the new version of the stored record in the non-volatile data storage while continuing to leave said particular record in the non-volatile data storage.
6 . The method of claim 1 further comprising generating a plurality of indexes to information that is within the stored records.
7 . The method of claim 1 further comprising generating and maintaining in volatile memory a plurality of indexes to information that is within the stored records.
8 . The method of claim 7 wherein each of said plurality of indexes includes two levels, the second level of which contains the time addresses that are within the stored records.
9 . A database method comprising:
storing a plurality of records in a data-storage, wherein each of the records of the plurality of records has a common structure that is characterized at its highest level by a key:value pair map in which the values are structures rather than scalars or primitives, said structures for containing one or more sub-records within the record; and generating and maintaining a plurality of drill-down indexes in volatile memory, wherein each of said plurality of drill-down indexes is based on a corresponding multipart key and is for extracting different information from the sub-records contained with the records of said plurality of records.
10 . The method of claim 9 , wherein storing said plurality of records involves adding a time address to each of the plurality of stored records, wherein the time address identifies when the corresponding record was created and wherein each corresponding index indexes said time addresses in its last level, said time address indexes identifying the time address within the stored records.
11 . A method of maintaining summary information for a database application that manages a database of records, said method comprising:
constructing an index in volatile memory for a key having associated therewith one or more quantity-related attributes that are found in the database records, wherein for each different instance of the key the index maintains a summary bucket that contains a cumulative value that is the sum of all values for the one or more quantity-related attributes associated with that instance of the key; and automatically updating the summary buckets in the index in volatile memory each time a new record is added to the database.
12 . The method of claim 11 wherein the automatic updating involves:
whenever a new record is added, scanning the new record for instances of attributes that match the summary bucket definitions for that file; extracting values associated with those instances; and adding the extracted values to the appropriate summary buckets stored in the index.Join the waitlist — get patent alerts
Track US2005182776A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.