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).
Abstract:
Provided is a method for managing a network providing Input/Output (I/O) paths between a plurality of host systems and storage volumes in storage systems. An application service connection definition is provided for each connection from a host to a storage volume. At least one service level guarantee definition is provided indicating performance criteria to satisfy service requirements included in at least one service level agreement with at least one customer for network resources. Each service level guarantee definition is associated with at least one application service connection definition. Monitoring is performed as to whether Input/Output (I/O) requests transmitted through the multiple I/O paths satisfy performance criteria indicated in the service level guarantee definition associated with the I/O paths.
Abstract:
Provided are a method, system, and program for managing a network providing Input/Output (I/O) paths between a plurality of host systems and storage volumes in storage systems. An application service connection definition is provided for each connection from a host to a storage volume. At least one service level guarantee definition is provided indicating performance criteria to satisfy service requirements included in at least one service level agreement with at least one customer for network resources. Each service level guarantee definition is associated with at least one application service connection definition. Monitoring is performed as to whether Input/Output (I/O) requests transmitted through the multiple I/O paths satisfy performance criteria indicated in the service level guarantee definition associated with the I/O paths.
Abstract:
To satisfy host requests, two competing processors self-manage access to a shared resource. Each processor maintains a lock table listing that processor's access state regarding the shared resource. Each processor repeatedly sends the other processor a state announcement message representing the processor's state. These include birth cry, heartbeat, or death knell messages. Whenever certain join-entry conditions apply to a processor, the processor performs a JOIN operation to evaluate and attempt to synchronize its lock table with the other processor's lock table. If data is needed from the other processor's lock table, the processor changes its state announcement message to birth cry. If the processor successfully synchronizes its lock table with the other processor, the JOIN operation dictates DUAL mode for that processor. If the synchronization attempt fails, SOLO results. When JOIN completes, the processor operates in its chosen mode. In DUAL, the processor's state announcement message is heartbeat, signifying healthy operation. In DUAL, the processors cooperatively establish temporary single-processor locks on the shared resource to satisfy host requests. In SOLO, a processor sets its state announcement message to death knell, advising the other processor not to access the shared resource. Also in SOLO, the processor attempts to "acquire" the shared resource by storing a predetermined identifier thereon. In SOLO, a processor refrains from accessing the shared resource unless it has acquired it.
Abstract:
A method and system for optimizing the performance of a storage system by classifying each client request for resources based on operational limits of the resources and controlling when to submit the request for processing based on service class. The operational limits are determined from performance characteristics of the system resources and from the level of performance guaranteed to each client. By regulating the clients' usage of resources using the resource operational limits, total system performance requirements and guarantees can be achieved.
Abstract:
A method and system for dynamically allocating cache space in a storage system among multiple workload classes each having a unique set of quality-of-service (QoS) requirements. The invention dynamically adapts the space allocated to each class depending upon the observed response time for each class and the observed temporal locality in each class. The dynamic allocation is achieved by maintaining a history of recently evicted pages for each class, determining a future cache size for the class based on the history and the QoS requirements where the future cache size might be different than a current cache size for the class, determining whether the QoS requirements for the class are being met, and adjusting the future cache size to maximize the number of classes in which the QoS requirements are met. The future cache sizes are increased for the classes whose QoS requirements are not met while they are decreased for those whose QoS requirements are met.
Abstract:
Disclosed is a system for updating and destaging data in a storage system. To overcome the limitations in the prior art described above, preferred embodiments of the present invention disclose a system for updating a data block in a storage device. A first processing unit receives an update to a data block in a storage device. The first processing unit sends a first message including the update and information indicating data blocks that were recently updated to a second processing unit. The second processing unit stores the update in a second storage area and sends a second message to the first processing unit after receiving the first message. The first processing unit stores the update in a first storage area and transfers the update from the first storage area to the data block in the storage device. The first processing unit transfers the update from the first storage area to the data block in the storage device. Data may be destaged from the first storage area by sending two messages before destage begins and two messages after destaging is completed so the second processing unit is aware of the state of the destaging operations.
Abstract:
Disclosed is a system for performing an operation, such as a read or write operation, on a data block in a shared disk system. A first adaptor receives a request to perform an operation on a data block maintained in a data storage location. The first adaptor then determines whether the first adaptor controls access to the data block. The first adaptor performs the requested operation on the data block after determining that the first adaptor controls access to the data block. If the first adaptor does not control access to the data block, then the first adaptor transmits a first message to a second adaptor that controls access to the data block and requests control of access to the data block. After receiving the first message, the second adaptor transfers control of access to the data block to the first adaptor. The second adaptor then transmits a second message to the first adaptor that the first adaptor controls access to the data block. After receiving the second message, the first adaptor performs the requested operation on the data block.
Abstract:
A system for utilizing informed throttling to guarantee quality of service to a plurality of clients includes a server core having a performance analyzer that compares a performance level received by a client to a corresponding contracted service level and determines if the client qualifies as a victim whose received performance level is less than the corresponding contracted service level. The performance analyzer is further configured to identify one or more candidates for throttling in response to an I/O stream receiving insufficient resources by determining if the client qualifies as a candidate whose received performance level is better than the corresponding contracted service level. The server core further includes a scheduler that selectively and dynamically issues a throttling command to the candidate client, and provides a quality of service enforcement point by concurrently monitoring a plurality of I/O streams to candidate clients and concurrently throttling commands to the candidate clients.
Abstract:
The present invention discloses a method, apparatus and program storage device for providing non-blocking, minimum threaded two-way messaging. A Performance Monitor Daemon provides one non-blocked thread pair per processor to support a large number of connections. The thread pair includes an outbound thread for outbound communication and an inbound thread for inbound communication. The outbound thread and the inbound thread operate asynchronously.