Patent ID: 8250257

Claim:
A method for performing I/O operations in a system comprising: receiving a graph including a plurality of nodes and edges between pairs of said plurality of nodes, said graph including a plurality of levels of nodes, said plurality of levels including a first level with a root node and one or more other levels each including a portion of said plurality of nodes, each node in said one or more other levels representing an object corresponding to a physical or logical entity in the system, each of said edges having a value indicating an I/O load metric; determining, by a thread for a first of said plurality of nodes included at a first of said one or more other levels, whether to perform a background I/O operation that is directed to a first device and has a first priority, said determining including comparing said first priority to a first value of an I/O load metric of a first edge between said first node and a second of said plurality of nodes, wherein said first value is determined in accordance with criteria for a time period, said criteria including a maximum usage of an I/O buffer of the first device and priorities of other I/O operations directed to said first device; and if it is determined that said background I/O operation is to be performed, forwarding said background I/O operation for processing on an I/O path having a corresponding path in said graph, said corresponding path including said first node, said first edge, and said second nod; wherein said receiving, said determining and said forwarding are performed using a processor.