Patent Document ID: 8527996
Application ID: 12683512
Patent Flag: 1

Claim One:
1. A computer-implemented method of throttling a plurality of operations of a plurality of applications that share a plurality of resources, said method comprising: a computer system receiving an observed workload that is observed on a data storage system and a predicted workload that is predicted to be on said data storage system; said computer system computing a difference between said observed workload and said predicted workload; said computer system determining whether or not said difference exceeds a predefined threshold for distinguishing between a first mode (normal mode) of a multi-strategy finder and a second mode (unexpected mode) of said multi-strategy finder; said computer system determining a final schedule of a plurality of actions that improve a utility of said data storage system, wherein, in response to a result of said determining whether or not said difference exceeds said predefined threshold being said difference does not exceed said predefined threshold, said determining said final schedule includes applying a recursive greedy pruning-lookback-lookforward process to construct and prune each tree of a plurality of trees, wherein a result of said recursive greedy pruning-lookback-lookforward process applied to a tree of said plurality of trees is a first set of one or more actions occurring in a sub-window of a window of time for improving said utility, and wherein said first set of one or more actions is included in said final schedule, wherein, in response to said result of said determining whether or not said difference exceeds said predefined threshold being said difference exceeds said predefined threshold, said determining said final schedule includes applying a defensive action selection process that includes selecting and invoking a first action based on said first action being a least costly action of a plurality of candidate actions until a cumulative utility loss for continuing said first action exceeds a cost of invoking a next action, wherein said next action is a next least costly action of said plurality of candidate actions, and wherein said first action is included in said final schedule; and said computer system performing said plurality of actions according to said final schedule by employing first, second and third single action tools, wherein said plurality of actions includes a combination of said first single action tool throttling a server, said second single action tool throttling a network, and said third single action tool throttling a data storage device.