An article of manufacture for use in a virtual data storage system, said virtual data storage system having a storage interface appearing as a plurality of addressable virtual storage devices to a host processing system, said storage interface for receiving data files from said host processing system, said virtual data storage system further including a storage manager for directing said data files between a cache storage and a plurality of storage volumes, said storage manager adaptively throttling a transfer of data files into said cache storage to prevent overrunning said cache storage,
- said article of manufacture comprising a computer-readable storage medium tangibly embodying a program of executable computer instructions which may cause said storage manager to:
- (a) maintain a cache free space within said cache storage, said cache free space defining a space within said cache storage available for future storing of said data files;
- (b) store said data files received from said host processing system into said cache storage, said storing of data files decreasing said cache free space;
- (c) migrate infrequently accessed data files from said cache storage to said plurality of storage volumes, frequently accessed data files remaining in said cache storage in anticipation of future requests from said host processing system, said migrating of data files increasing said cache free space;
- (d) recall said data files from said plurality of storage volumes to said cache storage when said host processing system requests to access one of said infrequently accessed data files, said recalling of data files decreasing said cache free space;
- (e) monitor said cache free space against a cache space threshold, said cache space threshold measuring a preferred amount of cache free space;
- (f) compute a storage throttle when said cache free space decreases below said cache space threshold;
- and
- (g) use said storage throttle to delay said storing of data files and said recalling of data files into said cache storage to prevent overrunning said cache storage by completely depleting said cache free space.