summaryrefslogtreecommitdiffstats
path: root/net/disk_cache
Commit message (Collapse)AuthorAgeFilesLines
* New disk cache eviction algorithm (partial implementation).rvargas@google.com2009-03-0613-110/+638
| | | | | | | | | | | | | | | | | | | | | | | | Disabled by a #def. When enabled, file format 2.1 is used, with a possible update from ver 2.0. If a version with this code disabled is run after the upgrade, it will just discard the file and go back to 2.0. We now put some of those extra list to use! Entries are separated into various lists depending on how often are used, and we keep track of previously evicted entries. If the new algorithm is not enabled, most of the code just goes through a different path (with the old code instead of the new one). One notable exception is OpenFollowingEntry, used to enumerate the entries on the cache; the code changed significantly to support the new version of the "cache iterator", but functionally should do the same as the current code. Review URL: http://codereview.chromium.org/27345 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11145 0039d316-1c4b-4281-b951-d872f2087c98
* Fixes CRLF and trailing white spaces.maruel@chromium.org2009-03-055-6/+6
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@10982 0039d316-1c4b-4281-b951-d872f2087c98
* Proposed change to support resource loading for media files.hclam@chromium.org2009-03-025-5/+188
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Highlights of changes: - Added methods to disk_cache::Entry: - Entry::PrepareTargetAsExternalFile(int index) Prepare a stream in an entry to use external file for storage. - Entry::GetExternalFile(int index) Get the external file backing the stream in the entry. - Added a property "CacheType type_" to HttpCache, along with setter and getter. There shall be two cache types, COMMON_CACHE and MEDIA_CACHE for distinguishing between different purpose of HttpCache. We have this property to trigger special behavior for caching needs of media files. - Added static methods to ChromeURLRequestContext - ChromeURLRequestContext::CreateOriginalForMedia Create a URLRequestContext for media files for the original profile. - ChromeURLRequestContext::CreateOffTheRecordForMedia Create a URLRequestContext for media files for off the record profile. - Added method to Profile interface. - GetRequestContextForMedia To get the request context for media files from the context. Design decissions: - Enforce writing to external file by calling methods to Entry rather than construct Backend by a different flag. Since we only want a valid and full response to go into an external file rather than redirection response or erroneous response, we should let HttpCache::Transaction to decide when to have an external file for response data. We eliminate a lot of useless external cache files. - Adding the CacheType enum and property to HttpCache, we could allow possible (?) future extensions to HttpCache to handle other different caching needs. And there's no need to add change constructors of HttpCache, but maybe we should add a specific constructor to accomodate a media HttpCache? - Adding Profile::GetRequestContextForMedia() Since we will need to use this new request context in ResourceDispatcherHost, I think the best place to keep it is in the profile. Also we will expose to user that there's a separate cache for media, so it's better to expose it in the Profile level to allow settings to the media cache, e.g. max file size, etc. Review URL: http://codereview.chromium.org/19747 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@10745 0039d316-1c4b-4281-b951-d872f2087c98
* Use string for Histogram names since these are all ASCII anyway.dsh@google.com2009-02-247-24/+21
| | | | | | | | Wide-character literals cause problems between platforms. Review URL: http://codereview.chromium.org/28046 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@10276 0039d316-1c4b-4281-b951-d872f2087c98
* Reduce the amount of included header files. Vast change like in "Oh God! ↵maruel@chromium.org2009-02-184-28/+40
| | | | | | | | This revision changes half of the source files!". Review URL: http://codereview.chromium.org/20378 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9958 0039d316-1c4b-4281-b951-d872f2087c98
* Disk cache: Don't add more people to the cache size experiment.rvargas@google.com2009-02-131-10/+2
| | | | | | | | | | At this point, adding more people just add noise to the experiment. After a little over a month, most users still have not filled up their allowed cache. Review URL: http://codereview.chromium.org/20337 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9728 0039d316-1c4b-4281-b951-d872f2087c98
* Fix some purify warnings.rvargas@google.com2009-02-121-0/+4
| | | | | | Review URL: http://codereview.chromium.org/21284 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9641 0039d316-1c4b-4281-b951-d872f2087c98
* Extend the IOBuffer to the disk cache.rvargas@google.com2009-02-129-234/+298
| | | | | | | | | | | This is cleanup from bug 5325. Original code review: http://codereview.chromium.org/20134/show Review URL: http://codereview.chromium.org/20251 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9626 0039d316-1c4b-4281-b951-d872f2087c98
* Revert cl 9528 to fix mac test_shell_testsrvargas@google.com2009-02-109-267/+234
| | | | | | Review URL: http://codereview.chromium.org/21236 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9532 0039d316-1c4b-4281-b951-d872f2087c98
* Extend the IOBuffer to the disk cache.rvargas@google.com2009-02-109-234/+267
| | | | | | | | This is cleanup from bug 5325. Review URL: http://codereview.chromium.org/20134 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9528 0039d316-1c4b-4281-b951-d872f2087c98
* Fix the windows implementation of KillProcess and WaitForSingleProcess to ↵stoyan@chromium.org2009-02-091-1/+1
| | | | | | | | not close the process handle that they do not own. Review URL: http://codereview.chromium.org/24004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9400 0039d316-1c4b-4281-b951-d872f2087c98
* Disk cache: Add a check to make sure that the index table mask is not bigger ↵rvargas@google.com2009-02-042-2/+14
| | | | | | | | | | than the table itself. BUG=7217 Review URL: http://codereview.chromium.org/20054 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9190 0039d316-1c4b-4281-b951-d872f2087c98
* Disk cache: Adjust the current experiment so that the cachervargas@google.com2009-01-231-15/+18
| | | | | | | | | | size is not limited by 1% of the disk space. Also, group four was limited by the mask so it was effectively the same as group 3. Review URL: http://codereview.chromium.org/18727 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8589 0039d316-1c4b-4281-b951-d872f2087c98
* Replace cases of Append(FILE_PATH_LITERAL()) with AppendASCII("").deanm@chromium.org2009-01-221-5/+5
| | | | | | Review URL: http://codereview.chromium.org/18499 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8454 0039d316-1c4b-4281-b951-d872f2087c98
* Make CommandLine into a normal object, with some statics for getting at the ↵evan@chromium.org2009-01-211-8/+2
| | | | | | | | | | | current process's command line. One explicit goal of this change is to *not* deal with the string/wstring issues at the API on POSIX; the functions are the same as before, which means they remain as broken as before. (I did try to fix the internals, though, so migrating the callers is now possible by adding platform-appropriate hooks.) Review URL: http://codereview.chromium.org/18248 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8347 0039d316-1c4b-4281-b951-d872f2087c98
* Port crash_cache tool to Linux.phajdan.jr@chromium.org2009-01-132-47/+38
| | | | | | Review URL: http://codereview.chromium.org/17353 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@7939 0039d316-1c4b-4281-b951-d872f2087c98
* Try to consistently use arraysize() with strlcpy().deanm@chromium.org2009-01-023-14/+17
| | | | | | | | | For a char*, sizeof() == arraysize(), so there is nothing wrong with the current code. However I think it's important to be clear that the lcpy() functions work in characters and not bytes. The danger would be accidently using sizeof() with wcslcpy, for example copying some code as an example or modifying old code to use a wchar instead of a char. Review URL: http://codereview.chromium.org/17019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@7536 0039d316-1c4b-4281-b951-d872f2087c98
* Use appropriate version of delete in storage blockrvargas@google.com2008-12-192-6/+15
| | | | | | | | | | | depending on how storage was allocated. B=5041 Review URL: http://codereview.chromium.org/15032/show git-svn-id: svn://svn.chromium.org/chrome/trunk/src@7324 0039d316-1c4b-4281-b951-d872f2087c98
* Disk cache: Avoid a crashing on a timer when the cache is disabled.rvargas@google.com2008-12-181-1/+3
| | | | | | Review URL: http://codereview.chromium.org/15025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@7233 0039d316-1c4b-4281-b951-d872f2087c98
* Disk cache: move eviction code to a separate file.rvargas@google.com2008-12-185-87/+197
| | | | | | | | There should be no change in behavior with this CL. Review URL: http://codereview.chromium.org/14183 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@7190 0039d316-1c4b-4281-b951-d872f2087c98
* Disk cache: remove the hard coded list from rankings.ccrvargas@google.com2008-12-166-143/+204
| | | | | | | | | | | | | | | | The rankings module now works with any list, not just the first one. This is part of the support needed for new eviction algorithms. note: Rankings::CheckList() is basically the code that was implementing the old Rankings::SelfCheck() (moved with this cl). The disk cache behavior is not changing with this cl. Review URL: http://codereview.chromium.org/14141 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@7074 0039d316-1c4b-4281-b951-d872f2087c98
* Disk Cache: Send only one eviction age data point per browser execution.rvargas@google.com2008-12-161-5/+9
| | | | | | | | | | The eviction age analysis can be simplified (and it will be closer to what we really want to know) if we don't add the age of every entry, and instead use only the first evicted entry per run. Review URL: http://codereview.chromium.org/14448 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@7073 0039d316-1c4b-4281-b951-d872f2087c98
* Port flush_cache tool and perf_tests.phajdan.jr@chromium.org2008-12-121-83/+18
| | | | | | | | | BUG=4160,4263 Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=6815 Review URL: http://codereview.chromium.org/9639 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@6886 0039d316-1c4b-4281-b951-d872f2087c98
* Disk cache: Set up an experiment to measure the effect ofrvargas@google.com2008-12-114-28/+94
| | | | | | | | | | | | | | | | increasing the maximum cache size. There will be three groups on the experiment, each group with 10% of the users (Dev Channel). Each group will have the max cache size increased by a factor from 2 to 4 times the current size, and we'll measure the age of evicted entries. I'm also adding a few metrics of reliability, to detect how often we're not getting to do proper cleanup. Review URL: http://codereview.chromium.org/14013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@6847 0039d316-1c4b-4281-b951-d872f2087c98
* Reverting 6815.phajdan.jr@chromium.org2008-12-111-18/+83
| | | | | | Review URL: http://codereview.chromium.org/14006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@6816 0039d316-1c4b-4281-b951-d872f2087c98
* Port flush_cache tool and perf_tests.phajdan.jr@chromium.org2008-12-111-83/+18
| | | | | | | BUG=4160,4263 Review URL: http://codereview.chromium.org/9639 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@6815 0039d316-1c4b-4281-b951-d872f2087c98
* Move file enumeration to filepaths.avi@google.com2008-12-111-2/+3
| | | | | | Review URL: http://codereview.chromium.org/13315 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@6784 0039d316-1c4b-4281-b951-d872f2087c98
* Disk cache: Avoid using a block file to full capacity if there isrvargas@google.com2008-12-091-3/+17
| | | | | | | | | | | | another file already chained to this one. The second timer of DiskCacheTest.BlockFilesPerformance (net_perftests) is reduced by ~60% (YMMV). Review URL: http://codereview.chromium.org/13677 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@6660 0039d316-1c4b-4281-b951-d872f2087c98
* Disk cache: Add support for an extra data stream for each cache entry.rvargas@google.com2008-12-0410-70/+152
| | | | | | | | | | | | This is the first step to allow the http cache to store additional metadata for certain entries. The cache file format changes to version 2.0 so an effect of this cl is that the borwser will discard the old cache files. Review URL: http://codereview.chromium.org/12880 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@6392 0039d316-1c4b-4281-b951-d872f2087c98
* * Cleanup: move base/platform_test.h -> testing/jeremy@chromium.org2008-12-022-2/+2
| | | | | | | | * Add support for "Debug On Start" switch to MultiprocessTest::SpawnChild Review URL: http://codereview.chromium.org/13052 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@6227 0039d316-1c4b-4281-b951-d872f2087c98
* Disk cache: Add a tool to upgrade a set of cache files from one version torvargas@google.com2008-12-024-54/+91
| | | | | | | | | another. Also moves crash_cache project to the "tools folder" on the solution. Review URL: http://codereview.chromium.org/12851 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@6226 0039d316-1c4b-4281-b951-d872f2087c98
* Port stress_cache tool.deanm@chromium.org2008-11-211-25/+57
| | | | | | | | BUG=4491 Review URL: http://codereview.chromium.org/11202 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5862 0039d316-1c4b-4281-b951-d872f2087c98
* Some changes necessary to build an optimized binary on Linux.evanm@google.com2008-11-111-4/+7
| | | | | | | | | | | | | | | | | Two other speedup changes that I'm not including: root_env = Environment( tools = ['component_setup'], + RPATH=[], And linux_env.Tool('target_platform_linux') -linux_env.Tool('target_debug') +linux_env.Tool('target_optimized') Review URL: http://codereview.chromium.org/10292 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5193 0039d316-1c4b-4281-b951-d872f2087c98
* * Revert "Por rt flush_cache tool."agl@chromium.org2008-11-111-17/+83
| | | | | | | | | This reverts commit 3bd600b37c5ee613c004c84736ee3cb69434562a. Review URL: http://codereview.chromium.org/9774 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5184 0039d316-1c4b-4281-b951-d872f2087c98
* Port flush_cache tool.agl@chromium.org2008-11-111-83/+17
| | | | | | | | | | BUG=4160 Review URL: http://codereview.chromium.org/9639 Patch from Paweł Hajdan jr. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5182 0039d316-1c4b-4281-b951-d872f2087c98
* Switch MessagePumpForIO to use completion ports on Windows.rvargas@google.com2008-11-077-199/+150
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Cleanup the separation between MessagePumpForUI and MessagePumpForIO, and convert the latter to use Completion Ports instead of MsgWaitForMultipleobjects to sleep when idle. Remove all traces of Windows messages from MessagePumpForIO, remove the transitional API of completion port notifications and remove WatchObject API. Modify all callers of RegisterIOHandler so that they are no longer using RegisterIOContext, and also handle properly the new semantics of completion ports (notifications even when the IO completes immediately). Add a new interface to allow proper cleanup of disk cache (to replace code that was waiting for pending APCs from the destructor). Add a way for the message pump to perform cleanup of abandoned IO. BUG=B/1344358, 3497, 3630 TESt=unit tests R=darin Review URL: http://codereview.chromium.org/8156 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5021 0039d316-1c4b-4281-b951-d872f2087c98
* * Add write and read/write support to FileStream (renamed from FileInputStream).erikkay@google.com2008-11-0311-215/+76
| | | | | | | | * Moved net/disk_cache/os_file to base/platform_file. Review URL: http://codereview.chromium.org/8843 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@4454 0039d316-1c4b-4281-b951-d872f2087c98
* Move Time, TimeDelta and TimeTicks into namespace base.dsh@google.com2008-10-2717-17/+44
| | | | | | Review URL: http://codereview.chromium.org/7995 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@4022 0039d316-1c4b-4281-b951-d872f2087c98
* This makes net_perftests build and run on Linux.evanm@google.com2008-10-131-1/+25
| | | | | | | | | | BUG=3065 Review URL: http://codereview.chromium.org/6080 Patch from Paweł Hajdan jr <phajdan.jr@gmail.com>. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3298 0039d316-1c4b-4281-b951-d872f2087c98
* Make sure there is only one instance of the stats histogram at a given time.rvargas@google.com2008-09-261-3/+7
| | | | | | | | | BUG=2805 Review URL: http://codereview.chromium.org/4292 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@2620 0039d316-1c4b-4281-b951-d872f2087c98
* Use histograms to send interesting parts of the disk cache statistics.rvargas@google.com2008-09-245-4/+156
| | | | | | | | | | | Most of this CL deals with a derived implementation of histograms that just queries the size stats already generated by the disk cache. The exact number of buckets, and their distribution, is controlled directly by the new class and the disk cache stats code. Review URL: http://codereview.chromium.org/3069 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@2580 0039d316-1c4b-4281-b951-d872f2087c98
* Fix DeleteCache on POSIX. It wasn't successfully deleting before.evanm@google.com2008-09-231-7/+9
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@2468 0039d316-1c4b-4281-b951-d872f2087c98
* Fix AmountOfFreeDiskSpace to be able to differentiate an errorrvargas@google.com2008-09-201-1/+1
| | | | | | | | from a full disk. Review URL: http://codereview.chromium.org/4003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@2431 0039d316-1c4b-4281-b951-d872f2087c98
* Fix a memory leak on the disk cache for posix.rvargas@google.com2008-09-181-0/+6
| | | | | | Review URL: http://codereview.chromium.org/3154 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@2393 0039d316-1c4b-4281-b951-d872f2087c98
* Move GetFreeDiskSpace to SysInfo.deanm@chromium.org2008-09-184-33/+2
| | | | | | | Patch from Pawel Hajdan Jr. Review URL: http://codereview.chromium.org/3141 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@2359 0039d316-1c4b-4281-b951-d872f2087c98
* Revision 2303 introduced AmountOfPhysicalMemory in SysInfo, so now ↵deanm@chromium.org2008-09-174-47/+2
| | | | | | | | | | GetSystemMemory in net/disk_cache/cache_util is redundant. Patch from Pawel Hajdan Jr. Review URL: http://codereview.chromium.org/3103 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@2306 0039d316-1c4b-4281-b951-d872f2087c98
* Mac/mach implementation of disk_cache::GetSystemMemory(). Patch by Kellymark@chromium.org2008-09-161-1/+14
| | | | | | | | | Norton <knorton@google.com>. http://codereview.chromium.org/3078 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@2258 0039d316-1c4b-4281-b951-d872f2087c98
* CreateDirectory() should check if an existing path is actually a directory ↵mmoss@google.com2008-09-111-1/+0
| | | | | | | | before skipping it. Also update a couple instances and comments to reflect current behaviour (see also http://codereview.chromium.org/1681). Review URL: http://codereview.chromium.org/1709 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@2060 0039d316-1c4b-4281-b951-d872f2087c98
* Implement GetFreeDiskSpace for POSIX and GetSystemMemory for Linux.mark@chromium.org2008-09-102-6/+31
| | | | | | | | | Patch by Paweł Hajdan jr <phajdan.jr@gmail.com> http://codereview.chromium.org/1891 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@2007 0039d316-1c4b-4281-b951-d872f2087c98
* Use gcc 4.2 for the Mac build. Fix up new warnings and errors pointed outmark@chromium.org2008-09-101-2/+2
| | | | | | | | | | by gcc 4.2: warning: 'C' has a field 'C::m_' whose type uses the anonymous namespace warning: missing braces around initializer for 'S' error: extra qualification 'C::' on member 'm' Review URL: http://codereview.chromium.org/1675 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@1955 0039d316-1c4b-4281-b951-d872f2087c98