d712f0ccc120357e1267a04ac6de9dd732b27e76 |
|
03-May-2017 |
Jeff Sharkey <jsharkey@android.com> |
Clear cached files on external storage. When clearing cached files belonging to an app, include any cached files on external storage. Since we need to keep sdcardfs in the loop about any file deletions, we always mutate by going through the sdcardfs layer instead of behind its back. Test: cts-tradefed run commandAndExit cts-dev -m CtsAppSecurityHostTestCases -t android.appsecurity.cts.StorageHostTest Bug: 37486230, 37566983, 37913442, 37914374 Change-Id: If174bf7eaf682da83cf0ab1b4938fe9a5956d464
/frameworks/native/cmds/installd/CacheTracker.h
|
88ddd94834dae9c5862a07a1e4432b171b2f5d9f |
|
18-Jan-2017 |
Jeff Sharkey <jsharkey@android.com> |
First pass at updated cache clearing logic. The old clearing algorithm is very naive and it sorts all cached files globally by modified time. This sadly lets apps gamify the system by setting their modified times far in the future, and it's very expensive because it requires a global filesystem traversal to free up even the smallest amount of data. Instead, this CL introduces a much more fair cache clearing algorithm that deletes files from specific UIDs based on how much cache space that UID is using proportional to the space allocated to them. This new design has several nice properties: -- It uses the recently added quotactl() feature to rapidly target the apps that are using the most space. -- We only need to traverse the filesystem for UIDs that actively enter the crosshairs of the clearing algorithm. -- Disciplined apps who stay under their allocated quota will be the last to have their cached data cleared. -- This design can be easily adapted to support additional features such as atomic purging and tombstones. In summary, the new algorithm is extremely efficient when freeing up the typical small-to-medium amounts of disk space, and is only moderately less efficient than the old algorithm when forced to clear all cached data. Test: builds, boots, clearing strategy looks sane Bug: 33965858 Change-Id: I66f95089cb33f1add3f31fcf1082ab2469870fda
/frameworks/native/cmds/installd/CacheTracker.h
|