A method comprising: receiving I/O requests from a database application having an application cache separate from a file system cache, each I/O request including metadata that specifies an I/O type and a file type of the I/O request, comparing the metadata of each of the I/O requests received from the application with a configurable cache map (130, 400), wherein the configurable cache map controls a selective caching based on the I/O type and the file type included in the metadata of the received I/O requests, wherein the configurable cache map includes pluralities of file type and I/O type pairs and a corresponding caching decision for each of the pluralities of pairs, and wherein the configurable cache map indicates that a first plurality of the pluralities of file type and I/O type pairs is to be cached in the file system cache, a second plurality of the pluralities of file type and I/O type pairs is not to be cached in the file system cache, and a third plurality of the pluralities of file type and I/O type pairs is to be cached and read ahead into the file system cache, wherein the metadata indicates how the application is to process the I/O request, wherein the second plurality of the pluralities of file type and I/O type pairs corresponds to I/O request that is being cached in the application cache; running a work-load and measuring statistics, wherein the caching is selectively turned off on a per file basis depending on a hit ratio; gathering the statistics, wherein the selective caching is tuned in accordance with the gathered statistics, turning off read-ahead caching when a low memory state is reached, when files receive excessive writes or after more than a certain percentage of data files are cached; processing each of the I/O requests to render a cache or no-cache decision for each of the I/O requests based on the comparison of each I/O request to the configurable cache map; and executing the selective caching on each of the I/O requests in accordance with the cache or no-cache decision, wherein a first one of the I/O requests is cached in the file system cache when the cache decision is rendered for the first one of the I/O requests, and wherein a second one of the I/O requests is not cached in the file system cache by bypassing the file system cache when the no-cache decision is rendered for the second one of the I/O requests. receiving I/O requests from a database application having an application cache separate from a file system cache, each I/O request including metadata that specifies an I/O type and a file type of the I/O request, comparing the metadata of each of the I/O requests received from the application with a configurable cache map (130, 400), wherein the configurable cache map controls a selective caching based on the I/O type and the file type included in the metadata of the received I/O requests, wherein the configurable cache map includes pluralities of file type and I/O type pairs and a corresponding caching decision for each of the pluralities of pairs, and wherein the configurable cache map indicates that a first plurality of the pluralities of file type and I/O type pairs is to be cached in the file system cache, a second plurality of the pluralities of file type and I/O type pairs is not to be cached in the file system cache, and a third plurality of the pluralities of file type and I/O type pairs is to be cached and read ahead into the file system cache, wherein the metadata indicates how the application is to process the I/O request, wherein the second plurality of the pluralities of file type and I/O type pairs corresponds to I/O request that is being cached in the application cache; running a work-load and measuring statistics, wherein the caching is selectively turned off on a per file basis depending on a hit ratio; gathering the statistics, wherein the selective caching is tuned in accordance with the gathered statistics, turning off read-ahead caching when a low memory state is reached, when files receive excessive writes or after more than a certain percentage of data files are cached; processing each of the I/O requests to render a cache or no-cache decision for each of the I/O requests based on the comparison of each I/O request to the configurable cache map; and executing the selective caching on each of the I/O requests in accordance with the cache or no-cache decision, wherein a first one of the I/O requests is cached in the file system cache when the cache decision is rendered for the first one of the I/O requests, and wherein a second one of the I/O requests is not cached in the file system cache by bypassing the file system cache when the no-cache decision is rendered for the second one of the I/O requests.