1. A method for caching input/output (I/O) request data using a non-volatile cache, the method comprising: monitoring I/O requests on an operating system operating on a computing device; applying file selection criteria to the monitored I/O requests to identify I/O requests pertaining to cacheable files; filtering the identified I/O requests to select I/O requests of the identified I/O requests that satisfy an application selection criterion, wherein filtering a particular one of the identified I/O requests comprises, determining an application associated with the particular I/O request, and selecting the particular I/O request to be serviced using a non-volatile cache in response to the determined application satisfying the application selection criterion; and servicing the selected I/O requests determined to pertain to cacheable files and to satisfy the application selection criterion using the non-volatile cache.