1. A method for caching data objects, comprising: providing a cache having a cache log for the data objects; assigning discard rules to the data objects on a class basis; predicting needed data objects based on the cache log; prefetching the needed data objects into the cache; and discarding particular data objects from the cache based on the discard rules.