summaryrefslogtreecommitdiffstats
path: root/net/disk_cache
Commit message (Collapse)AuthorAgeFilesLines
...
* Disk cache: Add explicit support for eviction / deletionrvargas@google.com2009-07-097-13/+279
| | | | | | | | | | | | | | | | | | | | | | | of sparse entries. I started to add code to modify the children_map of the parent entry when a child is evicted but that ended up being too much trouble for too little gain. We have to be prepared to handle the case of not finding a child entry because there is no way to make sure that the process doesn't go away at any time, so adding a lot of complexity just to avoid an extra entry lookup is just not worth it. On the other hand, potentially freeing up a lot of space when a sparse entry is deleted (insetad of just waiting for the eviction code to do the cleanup) seems like a good thing. BUG=12258 TEST=unittest Review URL: http://codereview.chromium.org/149306 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@20325 0039d316-1c4b-4281-b951-d872f2087c98
* Disk cache: Additional code cleanup after CL 20067.rvargas@google.com2009-07-081-20/+10
| | | | | | | | | BUG=15596 TEST=none Review URL: http://codereview.chromium.org/155231 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@20190 0039d316-1c4b-4281-b951-d872f2087c98
* Disk cache: Keep a map of all open entries.rvargas@google.com2009-07-077-40/+95
| | | | | | | | | | | | | | | | | We still have a few crashes when for some reason we believe an entry is not dirty and we follow the pointer stored by its rankings node only to crash while accessing the memory. I have no explanation to why the dirty id matches the current one (a page boundary issue maybe?), but having a map with all open entries solves the issue of having to follow pointers from disk. BUG=15596, b/1120346 TEST=unittests Review URL: http://codereview.chromium.org/149218 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@20067 0039d316-1c4b-4281-b951-d872f2087c98
* Fix 15 coverity complaints.rvargas@google.com2009-07-016-6/+6
| | | | | | | | | | | | Most of the changes are cosmetic, but there is also a memory leak in CreateExpiredServer. BUG=none TEST=none Review URL: http://codereview.chromium.org/153001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19788 0039d316-1c4b-4281-b951-d872f2087c98
* Use C99 standard format macros for 64-bit values.agl@chromium.org2009-06-291-1/+2
| | | | | | | | | | | | | | | | | | | Currently we have several uses of %I64d in format strings to indicate a 64-bit value. This does not work on Mac or Linux, where 'I' indicates the use of locale specific digits. Instead, we introduce base/format_macros.h which mimic the C99 standard macros for 64-bit values in a cross-platform manner. Dean pointed out that V8 is handling this themselves rather than use inttypes.h. Maybe we'll end up going down the same path but, for the moment, we'll try and do it the 'correct' way and see how it works out. http://codereview.chromium.org/147154 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19500 0039d316-1c4b-4281-b951-d872f2087c98
* Add a command line switch to allow setting the max sizervargas@google.com2009-06-261-0/+4
| | | | | | | | | | | | | | of the disk cache. This switch is intended for troubleshooting, not to add another supported configuration. BUG=15117 TEST=none Review URL: http://codereview.chromium.org/146136 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19439 0039d316-1c4b-4281-b951-d872f2087c98
* Sparse IO implementation for memory-only cachehclam@chromium.org2009-06-265-73/+438
| | | | | | | | | | | | | | Implemented the following methods: MemEntryImpl::ReadSparseData MemEntryImpl::WriteSparseData MemEntryImpl::GetAvailableRange TEST=DiskCacheEntryTest.Memory* original CL: http://codereview.chromium.org/140049 Review URL: http://codereview.chromium.org/147217 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19380 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "Implementation for memory only sparse caching" r19270.scherkus@chromium.org2009-06-255-438/+73
| | | | | | | | | | | TBR=rvargas TEST=none BUG=none Review URL: http://codereview.chromium.org/149041 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19308 0039d316-1c4b-4281-b951-d872f2087c98
* Implementation for memory only sparse cachinghclam@chromium.org2009-06-255-73/+438
| | | | | | | | | | | | Implemented the following methods for memory only cache: ReadSparseData WriteSparseData GetAvailableRange BUG=12258 Review URL: http://codereview.chromium.org/140049 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19270 0039d316-1c4b-4281-b951-d872f2087c98
* Disk Cache: Split some time histograms in groups basedrvargas@google.com2009-06-255-35/+75
| | | | | | | | | | | on the cache size. BUG=10727 TEST=none Review URL: http://codereview.chromium.org/146129 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19256 0039d316-1c4b-4281-b951-d872f2087c98
* Disk Cache: Add more clients to the current experiment.rvargas@google.com2009-06-241-5/+21
| | | | | | | | | | | | | For some reason, I have less than 1% of clients taking part of the eviction algorithm experiment, so I'm adding clients again. BUG=none TEST=none Review URL: http://codereview.chromium.org/147066 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19175 0039d316-1c4b-4281-b951-d872f2087c98
* Disk Cache: Fix a dumb warning about a variable not being initialized.rvargas@google.com2009-06-231-1/+1
| | | | | | | | | TBR=nsylvain BUG=none Review URL: http://codereview.chromium.org/146054 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19071 0039d316-1c4b-4281-b951-d872f2087c98
* Disk Cache: Implement GetAvailableRange for the regular disk cache.rvargas@google.com2009-06-233-17/+136
| | | | | | | | | | | This is required to enable sparse caching. BUG=12258 TEST=unittest Review URL: http://codereview.chromium.org/146005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19069 0039d316-1c4b-4281-b951-d872f2087c98
* Disk cache: First pass to add support for sparse entries.rvargas@google.com2009-06-1811-12/+1557
| | | | | | | | | | | | | Adding Read/Write support. BUG=12258 TEST=unittests. original review: http://codereview.chromium.org/126179 Review URL: http://codereview.chromium.org/132031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18772 0039d316-1c4b-4281-b951-d872f2087c98
* Revert cl 18723.rvargas@google.com2009-06-1811-1547/+12
| | | | | | | TBR=nsylvain git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18726 0039d316-1c4b-4281-b951-d872f2087c98
* Disk cache: First pass to add support for sparse entries.rvargas@google.com2009-06-1811-12/+1547
| | | | | | | | | | | | Adding Read/Write support. BUG=12258 TEST=unittests. Review URL: http://codereview.chromium.org/126179 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18723 0039d316-1c4b-4281-b951-d872f2087c98
* Introduce parent and child entries for MemEntryImplhclam@chromium.org2009-06-155-32/+167
| | | | | | | | | | | | | | | | | | | | | Defines enums for kParentEntry and kChildEntry in MemEntryImpl. Also has code in MemBackendImpl to create a slave entry. Parent entries are non-sparse entries until sparse API are called on them, and they would start to keep a list of child entries. Child entries hold partial content and are not susposed to be accessible from the public and are managed by the parent entry that created it. Child entries are registered in the backend's ranking list to allow individual eviction. More details about how child entries are to be used are in the comments. TEST=DiskCacheEntryTest.MemoryOnlyEnumerationWithSlaveEntries Review URL: http://codereview.chromium.org/120004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18432 0039d316-1c4b-4281-b951-d872f2087c98
* Disk cache: Avoid recursion when trimming entries.rvargas@google.com2009-06-103-3/+9
| | | | | | | | | | | | | | TrimCacheV2() calls EvictEntry() to move a given entry to the "deleted" list. EvictEntry() deletes the actual data, and that may end up calling ModifyStorageSize() and TrimCacheV2() again. BUG=b/1909376 TEST=none Review URL: http://codereview.chromium.org/121002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18115 0039d316-1c4b-4281-b951-d872f2087c98
* Disk Cache: Simplify CallbackTest.rvargas@google.com2009-06-094-48/+28
| | | | | | | | | | | Remove the callback id... it's not useful anymore. BUG=none TEST=current unit tests. Review URL: http://codereview.chromium.org/118407 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17924 0039d316-1c4b-4281-b951-d872f2087c98
* Disk cache: Report more info from the current experiment.rvargas@google.com2009-06-053-19/+43
| | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/119218 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17772 0039d316-1c4b-4281-b951-d872f2087c98
* Disk cache: Interface for the sparse cache support.rvargas@google.com2009-06-045-0/+91
| | | | | | | | | | | | This is just the interface declaration plus a mocked implementation of the interface. BUG=12258 TEST=none Review URL: http://codereview.chromium.org/119072 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17669 0039d316-1c4b-4281-b951-d872f2087c98
* Reduce header dependencies in base/phajdan.jr@chromium.org2009-06-031-0/+1
| | | | | | | | Also adds more explicit #includes for needed things. Review URL: http://codereview.chromium.org/118162 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17479 0039d316-1c4b-4281-b951-d872f2087c98
* Remove code path that passes a file handle to the rendererhclam@chromium.org2009-05-297-192/+3
| | | | | | | | | | | | | | | | | | | | | | Since the code now does range request without any caching the code path for passing file handle is not used any more. Changes: 1. Remove response_data_file in webkit_glue::ResourceResponseHead 2. Remove response_data_file in net::ResourceInfo 3. Remove code that passes file handle using IPC 4. Remove code that passes file hadnle from network layer to ResourceDispatcherHost 5. Remove MediaResourceHandler 6. Remove code in disk_cache that expose the file handle 7. Remove ChromeURLRequestContext::CreateOffTheRecordForMedia() so no more OTR request context for media, in OTR mode simply memory cache is used 8. Reset cache size for media cache to default BUG=12249 BUG=12256 Review URL: http://codereview.chromium.org/113931 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17227 0039d316-1c4b-4281-b951-d872f2087c98
* Disk cache: Fix a signed / unsigned comparison on cl 17052rvargas@google.com2009-05-281-2/+2
| | | | | | | | TBR=nsylvain Review URL: http://codereview.chromium.org/115848 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17053 0039d316-1c4b-4281-b951-d872f2087c98
* Disk cache: Reset mask_ when the disk cache is being restarted.rvargas@google.com2009-05-282-0/+71
| | | | | | | | | | | | | | | It is possible that the size for the index table is reduced when the cache is restarted (the available disk space could be lower than what it was when the cache was originally created). If that is the case, not resetting mask_ to 0 will prevent the mask to be set correctly for the new table size, resulting in a crash. BUG=12378 TEST=unittests Review URL: http://codereview.chromium.org/113930 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17052 0039d316-1c4b-4281-b951-d872f2087c98
* Set the disk cache file version properly if new_evictionrvargas@google.com2009-05-121-0/+5
| | | | | | | | | | | is set. BUG=none TEST=none Review URL: http://codereview.chromium.org/115271 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15918 0039d316-1c4b-4281-b951-d872f2087c98
* Close the disk cache experiment for new users.rvargas@google.com2009-05-081-18/+2
| | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/114014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15646 0039d316-1c4b-4281-b951-d872f2087c98
* Fix a browser crash when reading the disk cache experiment datarvargas@google.com2009-05-041-5/+6
| | | | | | | | | | | after failing to map the index file. BUG=11414 TEST=none Review URL: http://codereview.chromium.org/100349 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15235 0039d316-1c4b-4281-b951-d872f2087c98
* Deprecate wstring version of PathService::Get() in net.thestig@chromium.org2009-05-013-11/+12
| | | | | | Review URL: http://codereview.chromium.org/100240 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15088 0039d316-1c4b-4281-b951-d872f2087c98
* Fix a few broken histograms.rvargas@google.com2009-04-302-10/+8
| | | | | | Review URL: http://codereview.chromium.org/99214 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14984 0039d316-1c4b-4281-b951-d872f2087c98
* Disk cache: Set up a new experiment on the dev channel.rvargas@google.com2009-04-223-10/+85
| | | | | | | | | Enable the new eviction algorithm for 10% of the current users on the dev channel. Review URL: http://codereview.chromium.org/79064 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14229 0039d316-1c4b-4281-b951-d872f2087c98
* Stop using deprecated file_util::Trim* functions.thestig@chromium.org2009-04-211-4/+5
| | | | | | Review URL: http://codereview.chromium.org/79053 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14121 0039d316-1c4b-4281-b951-d872f2087c98
* Disk cache: Modify the unit tests so that they test bothrvargas@google.com2009-04-179-150/+397
| | | | | | | | eviction algorithms without having to recompile the code. Review URL: http://codereview.chromium.org/79031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13909 0039d316-1c4b-4281-b951-d872f2087c98
* s/delete/delete[]/thestig@chromium.org2009-04-151-1/+1
| | | | | | Review URL: http://codereview.chromium.org/67174 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13759 0039d316-1c4b-4281-b951-d872f2087c98
* Fix strict aliasing warning in disk_cache_perftest.thestig@chromium.org2009-04-141-4/+2
| | | | | | Review URL: http://codereview.chromium.org/67144 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13717 0039d316-1c4b-4281-b951-d872f2087c98
* Disk cache: Enable the code that sets the max size automatically.rvargas@google.com2009-04-143-10/+69
| | | | | | | | (still limiting the ceiling). Review URL: http://codereview.chromium.org/68007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13684 0039d316-1c4b-4281-b951-d872f2087c98
* Disk cache: Finish the current experiment.rvargas@google.com2009-04-103-52/+24
| | | | | | Review URL: http://codereview.chromium.org/67046 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13535 0039d316-1c4b-4281-b951-d872f2087c98
* Disk cache: fix broken UMA reports.rvargas@google.com2009-04-093-2/+11
| | | | | | Review URL: http://codereview.chromium.org/62176 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13431 0039d316-1c4b-4281-b951-d872f2087c98
* Disk Cache: Make sure that an entry that pretends to bervargas@google.com2009-03-302-0/+20
| | | | | | | | | | | | | | | | "clean" is not really dirty. If for some reason an entry is left on disk with a pointer on the rankings node but without the dirty flag set, we now recognize it as dirty the next time we read it from disk. BUG=3987 TEST=DiskCacheTest.Backend_NotMarkedButDirty Review URL: http://codereview.chromium.org/57024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12820 0039d316-1c4b-4281-b951-d872f2087c98
* Add some includes needed by GCC 4.4.0mark@chromium.org2009-03-301-0/+1
| | | | | | | | | | | | base/string16.h uses EOF thus #include <stdio.h> net/disk_cache/trace.cc uses vsnprintf thus #include <stdio.h> Patch by Craig Schlenter <craig.schlenter@gmail.com> Review URL: http://codereview.chromium.org/46092 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12777 0039d316-1c4b-4281-b951-d872f2087c98
* Disk Cache: Second pass (and final) to allow multiple instancesrvargas@google.com2009-03-277-66/+148
| | | | | | | | | | | | | | | | | | | of BackendImpl. This cl takes care of all the histograms on the disk cache. Most of them have to be splitted in three so that we get separate data from different cache types. There are a few places where the complexity of splitting the histogram is not worth it so we just keep either all data together (if it makes sense), or just ignore data for some types of caches. note: Having multiple versions of a histogram but only one "active" for a given client is not the same as having multiple histograms working at the same time for different objects. Review URL: http://codereview.chromium.org/42682 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12692 0039d316-1c4b-4281-b951-d872f2087c98
* Disk cache: Add a unit test that instantiates three cachesrvargas@google.com2009-03-263-7/+50
| | | | | | | | | at the same time (for media files). Review URL: http://codereview.chromium.org/45061 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12561 0039d316-1c4b-4281-b951-d872f2087c98
* Disk cache: First pass to make it possible to havervargas@google.com2009-03-2511-44/+84
| | | | | | | | | | | | multiple instances of BackendImpl. We need multiple objects to be able to support media files on the cache. After this change, histograms will be the only thing that get messed up by multiple disk caches. Review URL: http://codereview.chromium.org/49027 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12520 0039d316-1c4b-4281-b951-d872f2087c98
* Disk cache: fix the report of first-eviction data to include onlyrvargas@google.com2009-03-251-1/+1
| | | | | | | | | | new users (so the file format has a valid create_time) Histograms from dev channel (171) are incorrect. Review URL: http://codereview.chromium.org/49032 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12505 0039d316-1c4b-4281-b951-d872f2087c98
* Add a new histogram macro to replace a few explicit calls.rvargas@google.com2009-03-242-19/+17
| | | | | | | | There is no real change in functionality. Review URL: http://codereview.chromium.org/42514 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12400 0039d316-1c4b-4281-b951-d872f2087c98
* Use #pragma pack as documented to work with GCC and MSVCmark@chromium.org2009-03-241-2/+2
| | | | | | Review URL: http://codereview.chromium.org/49017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12384 0039d316-1c4b-4281-b951-d872f2087c98
* Disk cache: More instrumentation for the cache.rvargas@google.com2009-03-206-15/+192
| | | | | | | | | | | | | | Now we separate data between before and after the cache is full. Also, reduce the rate at which a particular client sends data to be only once a week. The effect is that the histogram data will only have one value per client, and the same client will not be "voting" on more than one version (release) at the same time. Review URL: http://codereview.chromium.org/50063 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12218 0039d316-1c4b-4281-b951-d872f2087c98
* initialize mixed_ in the File(PlatformFile) constructor variant.ericroman@google.com2009-03-202-2/+2
| | | | | | Review URL: http://codereview.chromium.org/42419 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12193 0039d316-1c4b-4281-b951-d872f2087c98
* Disk cache: Store the stats only once every five minutes.rvargas@google.com2009-03-191-1/+1
| | | | | | Review URL: http://codereview.chromium.org/48171 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12070 0039d316-1c4b-4281-b951-d872f2087c98
* Disk cache: Instead of saving the cache stats only whenrvargas@google.com2009-03-183-11/+22
| | | | | | | | | | | | the destructor is called, store them each five minutes. From the dev channel, 15% of the runs the disk cache destructor is not called, so the stats are not that reliable without this change. Review URL: http://codereview.chromium.org/42373 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12043 0039d316-1c4b-4281-b951-d872f2087c98