IP Library Granted Patent US 7,415,457
Granted Patent B2
US 7,415,457 · App. 10/898,280 · Granted Aug 19, 2008

Using a cache to provide cursor isolation

Assignee: Oracle International Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,415,457
App. No.
10/898,280
Granted
Aug 19, 2008
Kind
B2
Abstract

In one approach disclosed herein, a cache is used to provide cursor isolation. The cache is used to cache data that is updated in a query. Specifically, when a query is initiated, one or more caches may be instantiated in respect of the cursor. When data is updated during the query, the updated data is stored in the cache. By storing the updated data in the cache, the updated data is isolated from other users, from other sessions and from other queries by the same user.

Claims (65)

1. A method of processing a relational query comprising:

in response to executing, within a relational database server, a relational query that updates a data item in a non-relational data store, performing the steps of:

loading, from said non-relational data store, a copy of the data item into volatile memory;

updating the copy of said data item to create an updated data item;

instantiating a cache associated with said relational query; and

storing said updated data item in said cache.

2. The method of claim 1 wherein:

the relational query is one of a plurality of relational queries that update the data item; and

each query of said plurality of relational queries uses a different cache of a plurality of caches to concurrently store updated versions of the data item, to isolate changes made by each query of the plurality of queries from changes made by each other query of the plurality of queries.

3. The method of claim 1 wherein:

the relational query specifies multiple independent operations that update the data item; and

each operation of said multiple operations uses a different cache of a plurality of caches to concurrently store updated versions of the data item, to isolate changes made by each operation of the multiple operations from changes made by each other operation of the multiple operations.

4. The method of claim 3 wherein the multiple operations correspond to multiple instances of the MODEL construct within the relational query.

5. The method of claim 1 wherein the non-relational data store is a multidimensional database.

6. The method of claim 5 wherein the multidimensional database includes an analytical workspace.

7. The method of claim 1 , further comprising the step of:

retrieving said updated data item from said cache.

8. The method of claim 1 , wherein the relational query includes a MODEL clause.

9. The method of claim 1 , further comprising:

persisting said updated data item in persistent memory.

10. The method of claim 9 , wherein the persistent memory is within said non-relational data store.

11. The method of claim 1 , wherein the query updates a plurality of items, the method further comprising:

updating each of said plurality of data items to create a plurality of updated data items;

instantiating a plurality of caches, wherein each cache of the plurality of caches associated with a different one of said plurality of data items; and

storing each item of said plurality of data items in the cache associated with the data item.

12. The method of claim 1 , further comprising the step of:

in response to a subsequent access of said updated data item during the query, retrieving said updated data items from the cache associated with the data item.

13. The method of claim 1 , further comprising instantiating a plurality of caches, wherein each cache of the plurality of caches is associated with a separate data item updated by the relational query.

14. The method of claim 1 , further comprising instantiating a plurality of caches, wherein each cache of the plurality of caches is associated with a separate user.

15. The method of claim 1 , further comprising instantiating a plurality of caches, wherein each cache of the plurality of caches is associated with a separate category of data.

16. The method of claim 1 , further comprising a step of accessing the data item persisted in persistent memory with another query.

17. A computer-readable medium carrying one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform the steps of:

in response to executing, within a relational database server, a relational query that updates a data item in a non-relational data store, performing the steps of:

loading, from said non-relational data store, a copy of the data item into volatile memory;

updating the copy of said data item to create an updated data item;

instantiating a cache associated with said relational query; and

storing said updated data item in said cache.

18. The computer-readable medium of claim 17 , wherein:

the relational query is one of a plurality of relational queries that update the data item; and

each query of said plurality of relational queries uses a different cache of a plurality of caches to concurrently store updated versions of the data item, to isolate changes made by each query of the plurality of queries from changes made by each other query of the plurality of queries.

19. The computer-readable medium of claim 17 , wherein:

the relational query specifies multiple independent operations that update the data item; and

each operation of said multiple operations uses a different cache of a plurality of caches to concurrently store updated versions of the data item, to isolate changes made by each operation of the multiple operations from changes made by each other operation of the multiple operations.

20. The computer-readable medium of claim 19 , wherein the multiple operations correspond to multiple instances of the MODEL construct within the relational query.

21. The computer-readable medium of claim 17 , wherein the non-relational data store is a multidimensional database.

22. The computer-readable medium of claim 21 , wherein the multidimensional database includes an analytical workspace.

23. The computer-readable medium of claim 17 , further comprising instructions for:

retrieving said updated data item from said cache.

24. The computer-readable medium of claim 17 , wherein the relational query includes a MODEL clause.

25. The computer-readable medium of claim 17 , further comprising instructions for:

persisting said updated data item in persistent memory.

26. The computer-readable medium of claim 25 , wherein the persistent memory is within said non-relational data store.

27. The computer-readable medium of claim 17 , wherein:

the query updates a plurality of items;

the instructions further comprise instructions for:

updating each of said plurality of data items to create a plurality of updated data items;

instantiating a plurality of caches, wherein each cache of the plurality of caches associated with a different one of said plurality of data items; and

storing each item of said plurality of data items in the cache associated with the data item.

28. The computer-readable medium of claim 17 , further comprising instructions for:

in response to a subsequent access of said updated data item during the query,

retrieving said updated data items from the cache associated with the data item.

29. The computer-readable medium of claim 17 , further comprising instructions for instantiating a plurality of caches, wherein each cache of the plurality of caches is associated with a separate data item updated by the relational query.

30. The computer-readable medium of claim 17 , further comprising instructions for instantiating a plurality of caches, wherein each cache of the plurality of caches is associated with a separate user.

31. The computer-readable medium of claim 17 , further comprising instructions for instantiating a plurality of caches, wherein each cache of the plurality of caches is associated with a separate category of data.

32. The computer-readable medium of claim 17 , further comprising instructions for accessing the data item persisted in persistent memory with another query.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2004
From: DOMBROSKI, MATTHEW; SOYLEMEZ, EKREM
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 015624/0280 →
Continuity (6)
Continuation In Part 1042400300 · Apr 25, 2003
Continuation In Part 1042335600 · Apr 25, 2003
Continuation In Part 1041773200 · Apr 16, 2003
Provisional Application 6037987000 · May 10, 2002
Provisional Application 6037572600 · Apr 26, 2002
Related Publication 20040254947A1 · Dec 16, 2004