System for managing and controlling storage access requirements
First Claim
1. A Resource Management and Reservation System (RMRS)for managing and reserving storage bandwidth by controlling storage access requests which provides an interface to applications comprising:
- a computer network to which it is connected an ADRS interface element and a SAN interface element;
a scheduler/optimizer handler element and a RMRS repository element, each connected to said ADRS interface and to each other;
a SAN Gateway handler which is connected to said SAN interface and to said scheduler/optimizer handler element and said RMRS repository element; and
a schedule adjuster and a schedule optimizer each connected to said scheduler/optimizer handler element and said RMRS repository element.
1 Assignment
0 Petitions
Accused Products
Abstract
A Resource Management and Reservation System (RMRS) for managing and reserving storage bandwidth, is a platform independent middleware layer that provides an interface to applications, their database management systems, or some other higher level data management systems like ADRS which does data management on behalf of the applications. RMRS is highly relevant in hosted environments where one or more applications may be run on behalf of multiple customers each with a unique service level agreement with the Service Provider. Through its interface to the aforementioned applications, RMRS allows each application or an application side management system to communicate expected future storage access requirements (e.g., periodic access for backups). The interface also allows applications to request urgent storage access (e.g., recovery actions may be requested without being planned ahead of time).
329 Citations
54 Claims
-
1. A Resource Management and Reservation System (RMRS)for managing and reserving storage bandwidth by controlling storage access requests which provides an interface to applications comprising:
-
a computer network to which it is connected an ADRS interface element and a SAN interface element;
a scheduler/optimizer handler element and a RMRS repository element, each connected to said ADRS interface and to each other;
a SAN Gateway handler which is connected to said SAN interface and to said scheduler/optimizer handler element and said RMRS repository element; and
a schedule adjuster and a schedule optimizer each connected to said scheduler/optimizer handler element and said RMRS repository element. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53)
-
-
54. A system for managing and controlling storage access requirements comprising articles of manufacture which comprise computer-usable media having computer-readable program code means embodied therein for enabling said system to manage and control storage access requirements comprising:
-
said computer readable program code means in a first article of manufacture comprising means to allow an ADRS to register itself as a client of RMRS using the registerClient( ) API;
said computer readable program code means in a second article of manufacture comprising means to allow ADRS to register at least one hosted application with itself for backup/recovery wherein each application is associated with an Application Recovery Set (ARSet) comprising a set of application objects comprising Databases, Tablespaces, Files, which application objects need to be backed up and restored whenever required;
said computer readable program code means in a third article of manufacture comprising means to allow during said application registration phase, said ADRS to collect initial ARSet information comprising Data Size, Data Volatility, which determines optimal backup frequency, Constraint Windows, Technology to use for backup, for each object in the ARSet;
ADRS then invokes setTaskDefinition( ) API to register with RMRS multiple types of tasks, comprising backup and restore to be performed on said ARSet objects such that one task definition is registered per <
Object, TaskType>
tuple,In the event setTaskDefinition( ) API returns failure, it is an unexpected system error and if said API returns success, but requests more resources, in such event, said ADRS selects from one of the three available choices;
provision additional resources, continue with existing resources, or call unSetTaskDefinition( ) API and not serve the application;
said selection being made based on the current policy applicable to said application;
said computer readable program code means in a fourth article of manufacture comprising means to allow when a task is successfully registered, RMRS to returns a TaskDefinitionID which ADRS stores during said lifetime of said task and uses said return lo schedule individual instances of said task;
and said ADRS invokes generateTaskSchedule( ) API for the <
object, backup>
task that is defined using setTaskDefinition( ) API in previous setup, to generate the backup schedule for a meaningful period of time and RMRS returns a plan for the set of task instances detailing when each backup task is to be scheduled;
said computer readable program code means in a fifth article of manufacture comprising means to allow ADRS to use said plan created by RMRS to invoke the backup tasks at said scheduled time intervals;
and just prior to invoking a backup task, said ADRS does a final check with RMRS using the is TaskRunnable( ) API to check if the task can be invoked at this time;
said computer readable program code means in a sixth article of manufacture comprising means to calculate if RMRS has rescheduled the task to a future time, then to enable ADRS to receive a new invocation time for that task and updates its internal event table accordingly;
and when a backup task is in progress, statistics on several performance metrics are monitored and gathered on behalf of ADRS which invokes updateTaskDefinition( ) API at the end of a backup task if any of the task definition parameters are found to have changed;
said computer readable program code means in a seventh article of manufacture comprising means to determine if said change in task definition affects the current plan for the task schedule, then to enable said RMRS to first invalidate the existing backup plan for the task with the result that ADRS invalidates its internal plan and invokes generateTaskSchedule( ) API to rescheduled the task with updated task definition parameters;
and when a backup task completes successfully, said ADRS invokes the taskComplete( ) API to indicate to said RMRS that task has completed successfully and informs RMRS the actual time taken to complete the backup task. RMRS has an internal estimate for the expected completion time for the task and compares the expected completion against the actual completion time;
said computer readable program code means in an eighth article of manufacture comprising means to determine in the event a task is completed successfully and ahead of expected completion time, to enable RMRS to unblock resources reserved for said specific task and make those resources available for allocation to other tasks wherein the blocking and unblocking within RMRS is a logic concept internal to RMRS and there is no blocking of the actual resource;
and if a task ends prematurely for any reason, then ADRS indicates this to RMRS using the taskComplete( ) API and also indicates to RMRS whether the allocated resources should be released or continued to be allocated to the task;
said computer readable program code means in a ninth article of manufacture comprising means to determine if said ADRS intends to rescheduled said task immediately, and not release said resources; and
the actual task completion time and type completion (successful/abnormal) is indicated through taskComplete( ) API along with expected task completion time to help RMRS learn the trend of task completion time over the period and help in better planning and reservation of future instances of the task;
said computer readable program code means in a tenth article of manufacture comprising means to determine when all said tasks in said plan have been scheduled or otherwise taken care of, then top activate said ADRS to invoke generateTaskSchedule( ) API again to generate another plan for next plan period;
and for recovery, rescheduling of failed backup, hot backups tasks, ADRS uses the scheduleTask( ) API to schedule said tasks;
wherein in the event of a change in, the attributes associated with said task definition, ADRS invokes updateTaskDefinition( ) API and said API updates said task definition values stored in the RMRS Repository whereby any change in attribute values can invalidate the existing task schedule and indicate that to ADRS;
said computer readable program code means in an eleventh article of manufacture comprising means to re-compute a schedule if requested by said ADRS.
-
Specification