Legal claims defining the scope of protection, as filed with the USPTO.
1. In a computer system including a volatile memory and a persistent storage medium, a method for indicating the freshness of changeable data associated with a container, comprising: updating a fresh test table stored in the volatile memory of the computer system (“in-memory fresh test table”) with entries identifying each item of changeable data associated with a new container in the volatile memory (“in-memory container”) each time a new in-memory container is created; creating a new container stored in the persistent storage medium (“persistent container”) by merging all the in-memory containers associated with the at least one same item of changeable data; associating the new persistent container with a list identifying all items of changeable data associated with the new persistent container, wherein the list associated with the new persistent container further includes a Birthday value recorded in a header of a widset associated with the new persistent container; incrementing the Birthday value in the list associated with the new persistent container when the new persistent container appears in the list; and marking as invalid older versions of the items of changeable data in lists associated with older persistent containers, prior to marking as invalid older versions of the items of changeable data, initiating an invalidation process comprising: pairing up the new persistent containers with the older persistent containers, iterating sequentially through the changeable data associated with the new persistent containers, determining whether the older persistent container contains the changeable data, in response to determining that the older persistent container contains the changeable data, marking as invalid the older versions of the items of changeable data, and in response to determining that the older persistent container does not contain the changeable data, determining whether there is another changeable data that has to be processed.
2. The method of claim 1 , wherein the in-memory fresh test table is a hash table.
3. The method of claim 1 , wherein creating a new container stored in the persistent container by merging all in-memory containers associated with the at least one same item of changeable data further comprises: correlating the in-memory containers associated with the at least one same item of changeable data comprising entering, in a dependency table stored in the volatile memory, entries identifying the new in-memory container and any older in-memory container associated with the at least one same items of changeable data; and deleting the in-memory containers, and their entries in the in-memory fresh test table and the dependency table after the merge.
4. The method of claim 1 , wherein the new in-memory container is associated with the list identifying all the items of changeable data associated with the new in-memory container, further comprising removing lists associated with the in-memory containers after the merge.
5. The method of claim 1 , wherein the list associated with the new persistent container further comprises a data item called dirty bit, further comprising: setting the dirty bit before the list goes through the invalidation process; and resetting the dirty bit when all older versions of the changeable data associated with the new persistent container are marked invalid in the lists associated with all the older persistent containers.
6. A method of determining if a container of a plurality of containers that is associated with a particular item of changeable data is associated with the freshest version of the item of changeable data, each of the plurality of containers capable of being associated with one different version of the item of changeable data, comprising: taking a snapshot of existing containers, wherein the snapshot has a snapshot time stamp; determining whether the snapshot is marked as no freshness test necessary; in response to determining that the snapshot is marked as no freshness test necessary, marking the snapshot as no freshness test necessary if all the existing containers are associated with newly created changeable data, wherein marking the snapshot comprising indexes that have at least one of the following: no dependencies and has been invalidated; and in response to determining that the snapshot is not marked as no freshness test necessary, determining the freshness of the item of changeable data associated with the container, wherein determining the freshness of the item of changeable data associated with the container comprises: determining whether the container is an in-memory container, in response to determining that the container is an in-memory container, determining that the container is associated with a freshest version, having a time stamp, of the item of changeable data if the snapshot time stamp has a value less than the snapshot time stamp, and in response to determining that the container is not an in-memory container, determining whether the snapshot is a query snapshot, the query snapshot comprising taking present containers and preventing the containers from being deleted.
7. The method of claim 6 , wherein determining the freshness of the item of changeable data associated with the container comprises deciding that the container is associated with the freshest version of the item of changeable data if the snapshot is marked as no freshness test necessary.
8. The method of claim 6 , wherein the snapshot includes in-memory containers and persistent containers and wherein determining the freshness of the item of changeable data associated with the container comprises deciding that the container, if it is an in-memory container, is associated with the freshest version of the item of changeable data when no newer in-memory container is associated with the item of changeable data.
9. The method of claim 6 , wherein the snapshot includes in-memory containers and persistent containers and wherein determining the freshness of the item of changeable data associated with the container comprises deciding that the container is associated with the freshest version of the item of changeable data if: the container is a persistent container; no in-memory container is associated with the item of changeable data; and a list associated with the persistent container identifies the item of changeable data as valid.
10. A computer system for indicating the freshness of an item of changeable data associated with a container, comprising: (a) a computer volatile memory; (b) a persistent storage medium; and (c) a data processor coupled with the computer volatile memory and the persistent storage medium for: (1) updating a fresh test table stored in the volatile memory (“in-memory fresh test table”) with entries identifying each item of changeable data associated with a new container in the volatile memory (“in-memory container”) each time a new in-memory container is created, the fresh test table comprising at least one changeable data identification, at least one index identification, and at least one time stamp; prior to updating the fresh test table, receiving a request to indicate the freshness of the at least one changeable data, wherein receiving the request comprises: creating the new in-memory container, the new in-memory container comprising at least one key word and a corresponding identification representing the at least one changeable data containing the key word, associating the in-memory container with a list containing the at least one changeable data identification representing at least one changeable data, assigning the new in-memory index a unique container identification, and assigning a time stamp to the new in-memory container; creating a new container stored in the persistent storage medium (“persistent container”) by merging all in-memory containers associate with one or more same items of changeable data; associating the new persistent container with a list identifying all items of changeable data associated with the new persistent container, wherein the list associated with the new persistent container further includes a Birthday value recorded in a header of a widset associated with the new persistent container; incrementing the Birthday value in the list associated with the new persistent container when the new persistent container appears in the list; and marking as invalid older versions of the items of changeable data in the lists associated with older persistent containers, prior to marking as invalid older versions of the items of changeable data, initiating an invalidation process comprising: pairing up the new persistent containers with the older persistent containers; iterating sequentially through the changeable data identifications associated with the new persistent containers, determining whether the older persistent container contains the changeable data identification, in response to determining that the older persistent container contains the changeable data identification, marking as invalid the older versions of the items of changeable data, and in response to determining that the older persistent contained does not contain the changeable data identification, determining whether there is another changeable data identification that has to be processed.
11. In a computer system including a volatile memory and a persistent storage medium, a computer-readable medium containing computer-executable instructions for performing a method for indicating the freshness of changeable data associated with a container, the method comprising: updating a fresh test table stored in the volatile memory with entries identifying each item of changeable data associated with a new container in the volatile memory each time a new in-memory container is created, the fresh test table comprising at least one changeable data identification, at least one index identification, and at least one time stamp; prior to updating the fresh test table, receiving a request to indicate the freshness of the at least one changeable data, wherein receiving the request comprises: creating the new in-memory container, the new in-memory container comprising at least one key word and a corresponding identification representing the at least one changeable data containing the key word, associating the in-memory container with a list containing the at least one changeable data identification representing at least one changeable data, assigning the new in-memory index a unique container identification, and assigning a time stamp to the new in-memory container; creating a new container stored in the persistent storage medium (“persistent container”) by merging all in-memory containers associated with one or more same items of changeable data; associating the new persistent container with a list identifying all items of changeable data associated with the new persistent container, wherein the list associated with the new persistent container further includes a Birthday value recorded in a header of a widset associated with the new persistent container; incrementing the Birthday value in the list associated with the new persistent container when the new persistent container appears in the list; and marking as invalid older versions of the items of changeable data in the lists associated with older persistent containers, prior to marking as invalid older versions of the items of changeable data, initiating an invalidation process comprising: pairing up the new persistent containers with the older persistent containers, iterating sequentially through the changeable data identifications associated with the new persistent containers, determining whether the older persistent container contains the changeable data identification, in response to determining that the older persistent contained does not contain the changeable data identification, determining whether there is another changeable data identification that has to be processed.
12. The computer-readable medium of claim 11 , wherein the in-memory fresh test table is a hash table.
13. The computer-readable medium of claim 11 , wherein creating a new container stored in the persistent container by merging all in-memory containers associated with the at least one same items of changeable data further comprises: correlating the in-memory containers associated with the at least one same item of changeable data comprising entering, in a dependency table stored in the volatile memory, entries identifying the new in-memory container and any older in-memory container associated with the at least one same items of changeable data; and deleting the in-memory containers, and their entries in the in-memory fresh test table and the dependency table after the merge.
14. The computer-readable medium of claim 13 , wherein the new in-memory container is associated with the list identifying all the items of changeable data associated with the new in-memory container, further comprising removing lists associated with the in-memory containers after the merge.
15. The computer-readable medium of claim 11 , wherein the list associated with the new persistent container further comprises a data item called dirty bit, further comprising: setting the dirty bit before the list goes through the invalidation process; and resetting the dirty bit when all older versions of the changeable data associated with the new persistent container are marked invalid in the lists associated with all the older persistent containers.
16. A computer-readable medium containing computer-executable instructions for performing a method of determining if a container of a plurality of containers that is associated with a particular item of changeable data is associated with the freshest version of the item of changeable data, each of the plurality of containers capable of being associated with one different version of the item of changeable data, the method comprising: taking a snapshot of existing containers, wherein the snapshot has a snapshot time stamp; determining whether the snapshot is marked as no freshness test necessary; in response to determining that the snapshot is marked as no freshness test necessary, marking the snapshot as no freshness test necessary if all the existing containers are associated with newly created changeable data, wherein marking the snapshot comprising indexes that have at least one of the following: no dependencies and has been invalidated; and in response to determining that the snapshot is not marked as no freshness test necessary, determining the freshness of the item of changeable data associated with the container, wherein determining the freshness of the item of changeable data associated with the container comprises: determining whether the container is an in-memory, in response to determining that the container is an in-memory container, determining that the container is associated with a freshest version, having a time stamp, of the item of changeable data if the snapshot time stamp has a value less than the snapshot time stamp, and in response to determining that the container is not an in-memory container, determining whether the snapshot is a query snapshot, the query snapshot comprising taking present containers and preventing the containers from being deleted.
17. The computer-readable medium of claim 16 , wherein determining the freshness of the item of changeable data associated with the container comprises deciding that the container is associated with the freshest version of the item of changeable data if the snapshot is marked as no freshness test necessary.
18. The computer-readable medium of claim 16 , wherein the snapshot includes in-memory containers and persistent containers and wherein determining the freshness of the item of changeable data associated with the container comprises deciding that the container, if it is an in-memory container, is associated with the freshest version of the item of changeable data when no newer in-memory container is associated with the item of changeable data.
19. The computer-readable medium of claim 16 , wherein the snapshot includes in-memory containers and persistent containers and wherein determining the freshness of the item of changeable data associated with the container comprises deciding that the container is associated with the freshest version of the item of changeable data if: the container is a persistent container; no in-memory container is associated with the item of changeable data; and a list associated with the persistent container identifies the item of changeable data as valid.
Unknown
December 1, 2009
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.