SELECTIVELY READING DATA FROM CACHE AND PRIMARY STORAGE
First Claim
1. A method comprising:
- receiving, from a software application, at a storage system, one or more I/O requests to retrieve items involved in an operation that targets data that resides on primary storage managed by the storage system; and
in response to the one or more I/O requests, the storage system providing a first set of items required by the operation from the primary storage, and a second set of items required by the operation from an intermediate cache managed by the storage system;
wherein the storage system only issues I/O requests to the intermediate cache for the second set of items after determining that the intermediate cache is not overloaded.
2 Assignments
0 Petitions
Accused Products
Abstract
Techniques are provided for using an intermediate cache to provide some of the items involved in a scan operation, while other items involved in the scan operation are provided from primary storage. Techniques are also provided for determining whether to service an I/O request for an item with a copy of the item that resides in the intermediate cache based on factors such as a) an identity of the user for whom the I/O request was submitted, b) an identity of a service that submitted the I/O request, c) an indication of a consumer group to which the I/O request maps, d) whether the I/O request is associated with an offloaded filter provided by the database server to the storage system, or e) whether the intermediate cache is overloaded. Techniques are also provided for determining whether to store items in an intermediate cache in response to the items being retrieved, based on logical characteristics associated with the requests that retrieve the items.
166 Citations
32 Claims
-
1. A method comprising:
-
receiving, from a software application, at a storage system, one or more I/O requests to retrieve items involved in an operation that targets data that resides on primary storage managed by the storage system; and in response to the one or more I/O requests, the storage system providing a first set of items required by the operation from the primary storage, and a second set of items required by the operation from an intermediate cache managed by the storage system; wherein the storage system only issues I/O requests to the intermediate cache for the second set of items after determining that the intermediate cache is not overloaded. - View Dependent Claims (2, 3, 4)
-
-
5. A computer-readable storage storing instructions which, when executed by one or more processors, cause:
-
receiving, from a database server, at a storage system, one or more I/O requests to retrieve items involved in a scan operation that targets a database object that resides on primary storage managed by the storage system; and in response to the one or more I/O requests, the storage system providing a first set of items required by the scan operation from the primary storage, and a second set of items required by the scan operation from an intermediate cache managed by the storage system; wherein the storage system only issues I/O requests to the intermediate cache for the second set of items after determining that the intermediate cache is not overloaded. - View Dependent Claims (6, 7)
-
-
8. A method comprising:
-
receiving from a database server, at a storage system, an I/O request for an item that resides on primary storage, of which a copy currently resides in an intermediate cache; in response to the request, the storage system performing the steps of; determining whether to service the I/O request with the copy of the item that resides in the intermediate cache based on one or more factors, wherein the one or more factors include at least one of; a) an identity of the user for whom the I/O request was submitted, b) an identity of a service that submitted the I/O request, c) an indication of a consumer group to which the I/O request maps, d) whether the I/O request is associated with an offloaded filter provided by the database server to the storage system;
ore) whether the intermediate cache is overloaded; in response to determining, based on one or more factors, that the I/O request should be serviced with the copy of the item that resides in the intermediate cache, responding to the I/O request with the copy of the item that resides the intermediate cache without retrieving the item from primary storage; wherein the method is performed by one or more computing devices. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A method comprising:
-
receiving from a database server, at a storage system, an I/O request for an item that resides on primary storage but that does not currently reside in an intermediate cache; in response to the request, the storage system performing the steps of; retrieving the item from the primary storage; providing the item to the database server; determining whether to store a copy of the item in the intermediate cache based on one or more factors, wherein the one or more factors include at least one of; a) an identity of the user for whom the I/O request was submitted, b) an identity of a service that submitted the I/O request, c) an indication of a consumer group to which the I/O request maps, or d) whether the I/O request is associated with an offloaded filter provided by the database server to the storage system; in response to determining that the copy of the item should be stored in the intermediate cache based on one or more factors, storing the copy of the item in the intermediate cache; wherein the method is performed by one or more computing devices. - View Dependent Claims (18, 19, 20, 21)
-
-
22. A computer-readable storage storing instructions which, when executed by one or more processors, cause:
-
receiving from a database server, at a storage system, an I/O request for an item that resides on primary storage, of which a copy currently resides in an intermediate cache; in response to the request, the storage system performing the steps of; determining whether to service the I/O request with the copy of the item that resides in the intermediate cache based on one or more factors, wherein the one or more factors include at least one of; a) an identity of the user for whom the I/O request was submitted, b) an identity of a service that submitted the I/O request, c) an indication of a consumer group to which the I/O request maps, d) whether the I/O request is associated with an offloaded filter provided by the database server to the storage system;
ore) whether the intermediate cache is overloaded; in response to determining, based on one or more factors, that the I/O request should be serviced with the copy of the item that resides in the intermediate cache, responding to the I/O request with the copy of the item that resides the intermediate cache without retrieving the item from primary storage; wherein the method is performed by one or more computing devices. - View Dependent Claims (23, 24, 25, 26, 27, 28, 29, 30)
-
-
31. A computer-readable storage storing instructions with, when executed by one or more processors, cause:
-
receiving from a database server, at a storage system, an I/O request for an item that resides on primary storage but that does not currently reside in an intermediate cache; in response to the request, the storage system performing the steps of; retrieving the item from the primary storage; providing the item to the database server; determining whether to store a copy of the item in the intermediate cache based on one or more factors, wherein the one or more factors include at least one of; a) an identity of the user for whom the I/O request was submitted, b) an identity of a service that submitted the I/O request, c) an indication of a consumer group to which the I/O request maps, or d) whether the I/O request is associated with an offloaded filter provided by the database server to the storage system; in response to determining that the copy of the item should be stored in the intermediate cache based on one or more factors, storing the copy of the item in the intermediate cache; wherein the method is performed by one or more computing devices.
-
-
32. A storage system comprising:
-
primary storage for storing items for a database object; an intermediate cache; a mechanism for receiving, from a database server, one or more I/O requests to retrieve items involved in a scan operation that targets the database object; wherein the mechanism is configured to respond to the one or more I/O requests by providing a first set of items required by the scan operation from the primary storage, and a second set of items required by the scan operation from the intermediate cache; wherein the mechanism only issues I/O requests to the intermediate cache for the second set of items after determining that the intermediate cache is not overloaded.
-
Specification