Transaction-aware caching for document metadata
First Claim
1. A method for finding information about a file that is managed by a database system, comprising the computer-implemented steps of:
- receiving a request associated with a session for an operation on the file that is managed by a database system;
looking for an entry associated with said file in a session cache that is associated with said session;
if said entry is not in said session caches, then looking for said entry in one or more shared caches whose entries are accessible to multiple sessions; and
if said entry is not in said one or more shared caches, then looking in said database for said information about said file.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques are provided for performing transaction-aware caching of metadata in an electronic file system. A mechanism is described for providing transaction-aware caching that uses a cache hierarchy, where the cache hierarchy includes uncommitted caches associated with sessions in an application and a committed cache that is shared among the sessions in that application. Techniques are described for caching document metadata, access control metadata and folder path metadata. Also described is a technique for using negative cache entries to avoid unnecessary communications with a server when applications repeatedly request non-existent data.
-
Citations
76 Claims
-
1. A method for finding information about a file that is managed by a database system, comprising the computer-implemented steps of:
-
receiving a request associated with a session for an operation on the file that is managed by a database system;
looking for an entry associated with said file in a session cache that is associated with said session;
if said entry is not in said session caches, then looking for said entry in one or more shared caches whose entries are accessible to multiple sessions; and
if said entry is not in said one or more shared caches, then looking in said database for said information about said file. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A method for maintaining an entry in a cache hierarchy comprising the steps of:
-
storing within a first cache a first version of said entry that includes only changes made by a transaction associated with said first cache;
storing within a second cache a second version of said entry that does not include said changes made by said transaction;
providing data from said first version of said entry to said transaction;
providing data from said second version of said entry to transactions other than said transaction until said transaction successfully terminates; and
invalidating said second version of said entry when said transaction successfully terminates. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27)
-
-
28. A method for maintaining information in a cache hierarchy, the method comprising the steps of:
-
maintaining a plurality of first caches, wherein each cache of said plurality of caches is associated with a corresponding transaction of a plurality of transactions, and wherein the entries in each first cache contain data that reflects changes made by said corresponding transaction;
maintaining a second cache concurrent with said plurality of first caches, wherein no entries in said second cache contain data that reflects changes made by any of said plurality of transactions; and
in response to successful termination of a given transaction of said plurality of transactions, replacing one or more entries in said second cache with one or more entries from the first cache associated with said given transaction. - View Dependent Claims (29, 30, 31, 32)
-
-
33. A method for finding metadata comprising the steps of:
-
maintaining outside of a database system a first cache and a second cache that store said metadata about files stored in said database system;
wherein said first cache stores a first set of metadata that reflects modifications made during a first session and does not reflect modifications made during a second session;
wherein said second cache stores a second set of metadata that reflects said modifications made during said second session and does not reflect said modifications made during said first session;
providing requests received in said first session with data from said first set of metadata; and
providing requests received in said second session with data from said second set of metadata. - View Dependent Claims (34, 35)
-
-
36. A computer-readable medium carrying instructions for finding an entry in a cache hierarchy, the instructions comprising instructions for performing the steps of:
-
receiving a request for an operation associated with a session on a file that is managed by a database system;
looking for said entry associated with said file in session cache that are associated with said session;
if said entry is not in said session cache, then looking for said entry in one or more shared caches whose entries are accessible to multiple sessions; and
if said entry is not in said one or more shared caches, then looking in said database for said entry. - View Dependent Claims (37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54)
-
-
55. A computer-readable medium carrying instructions for maintaining an entry in a cache hierarchy, the instructions comprising instructions for performing the steps of:
-
storing within a first cache a first version of said entry that includes only changes made by a transaction associated with said first cache;
storing within a second cache a second version of said entry that does not include said changes made by said transaction;
providing data from said first version of said entry to said transaction;
providing data from said second version of said entry to transactions other than said transaction until said transaction successfully terminates; and
invalidating said second version of said entry when said transaction successfully terminates. - View Dependent Claims (56, 57, 58, 59, 60, 61, 62)
-
-
63. A computer-readable medium for maintaining information in a cache hierarchy, the computer-readable medium comprising instructions for performing the steps of:
-
maintaining a plurality of first caches, wherein each cache of said plurality of caches is associated with a corresponding transaction of a plurality of transactions, and wherein the entries in each first cache contain data that reflects changes made by said corresponding transaction;
maintaining a second cache concurrent with said plurality of first caches, wherein no entries in said second cache contain data that reflects changes made by any of said plurality of transactions; and
in response to successful termination of a given transaction of said plurality of transactions, replacing one or more entries in said second cache with one or more entries from the first cache associated with said given transaction. - View Dependent Claims (64, 65, 66, 67)
-
-
68. A computer-readable medium for finding metadata comprising instructions for performing the steps of:
-
maintaining outside of a database system a first cache and a second cache that store said metadata about files stored in said database system;
wherein said first cache stores a first set of metadata that reflects modifications made during a first session and does not reflect modifications made during a second session;
wherein said second cache stores a second set of metadata that reflects said modifications made during said second session and does not reflect said modifications made during said first session;
providing requests received in said first session with data from said first set of metadata; and
providing requests received in said second session with data from said second set of metadata. - View Dependent Claims (69, 70)
-
-
71. A method for managing a cache associated with a repository, the method comprising the steps of:
-
receiving, at said cache, a request for a piece of information;
determining whether the piece of information is stored in said cache;
if the information is not stored in said cache, accessing said repository to determine whether the piece of information is stored in said repository;
if the information is not stored in said repository, then inserting into said cache a negative cache entry that identifies said piece of information and indicates that said piece of information does not reside in said repository;
in response to a subsequent request for said piece of information, determining that said piece of information does not reside in said repository based on said negative cache entry, without involving said repository in handling of said subsequent request. - View Dependent Claims (72, 73, 74, 75, 76)
-
Specification