1. A method for managing cache elements in a data processing system having at least one processor and at least one cache, each cache element having associated therewith data, Time to Live (TTL), frequency of change (n change ), and frequency of access (n access ), the method comprising: setting a polling interval and a refining interval; storing each cache element in the cache and assigning a base value to the TTL for each cache element fetched for a first time; managing each cache element according to the following steps: (a) setting n change and n access to zero for the cache element; (b) tracking historical data, comprising n change and n access , for the cache element by incrementing n change each time the cache element is changed and incrementing const access each time the cache element is accessed; (c) in response to expiration of the TTL for the cache element, marking the cache element invalid; (d) in response to expiration of the polling interval and to the cache element being marked invalid, polling for the cache element to obtain new data for the cache element and updating the cache element with the new data; (e) in response to expiration of the refining interval, computing a new TTL for the cache element based on the historical data and current TTL for the cache element and returning to step a; and (f) returning to step b.