Skip to content
Snippets Groups Projects
  1. Dec 14, 2022
  2. Dec 12, 2022
    • Jaegeuk Kim's avatar
      f2fs: add block_age-based extent cache · 71644dff
      Jaegeuk Kim authored
      
      This patch introduces a runtime hot/cold data separation method
      for f2fs, in order to improve the accuracy for data temperature
      classification, reduce the garbage collection overhead after
      long-term data updates.
      
      Enhanced hot/cold data separation can record data block update
      frequency as "age" of the extent per inode, and take use of the age
      info to indicate better temperature type for data block allocation:
       - It records total data blocks allocated since mount;
       - When file extent has been updated, it calculate the count of data
      blocks allocated since last update as the age of the extent;
       - Before the data block allocated, it searches for the age info and
      chooses the suitable segment for allocation.
      
      Test and result:
       - Prepare: create about 30000 files
        * 3% for cold files (with cold file extension like .apk, from 3M to 10M)
        * 50% for warm files (with random file extension like .FcDxq, from 1K
      to 4M)
        * 47% for hot files (with hot file extension like .db, from 1K to 256K)
       - create(5%)/random update(90%)/delete(5%) the files
        * total write amount is about 70G
        * fsync will be called for .db files, and buffered write will be used
      for other files
      
      The storage of test device is large enough(128G) so that it will not
      switch to SSR mode during the test.
      
      Benefit: dirty segment count increment reduce about 14%
       - before: Dirty +21110
       - after:  Dirty +18286
      
      Signed-off-by: default avatarqixiaoyu1 <qixiaoyu1@xiaomi.com>
      Signed-off-by: default avatarxiongping1 <xiongping1@xiaomi.com>
      Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
      71644dff
  3. Dec 08, 2022
  4. Dec 02, 2022
  5. Dec 01, 2022
  6. Nov 30, 2022
  7. Nov 28, 2022
  8. Nov 24, 2022
  9. Nov 23, 2022
  10. Nov 21, 2022
  11. Nov 19, 2022
  12. Nov 16, 2022
  13. Nov 10, 2022
  14. Nov 09, 2022
  15. Nov 08, 2022
  16. Nov 04, 2022
  17. Nov 02, 2022
Loading