cfdc · research · also CFDC

Clean-First Dirty-Clustered (CFDC)

Clean-First Dirty-Clustered (CFDC) is a database buffer replacement policy combining clean-page preference with clustered dirty-page eviction.

CFDC separates a working region from a priority region. The latter has a clean queue and dirty-page clusters grouped by page-number range. Within a cluster, pages retain entry order, not address order. If no clean victim is available, eviction takes a page from the lowest-priority cluster. [1]

After a victim is selected, that cluster's priority becomes zero, encouraging subsequent evictions from it. This is not an immediate sorted whole-cluster write: the paper leaves batching and padding as future work. Maintaining cluster priorities also has a CPU cost. [1]

In the database experiment on a 32 GB SLC SATA SSD, CFDC flushed more pages than CFLRU but achieved higher throughput through cheaper page flushes. Neither write count nor hit ratio alone determines elapsed time. The tested device, workload and statically chosen window limit generalization; the paper does not establish superiority over every flash-aware policy. [1]

The paper first separates clean and dirty queues to remove clean-page searches while retaining its CFLRU baseline's hit and write behavior. This implementation improvement is separate from dirty clustering: CFDC adds cluster-based victim selection afterward. Fewer search steps alone do not establish a better eviction policy. [1]

Relations

related
Clean-First LRU (CFLRU), Least recently used replacement, Write-back cache, Locality of reference, Write combining

Limitations

  • Logical page-number proximity does not expose physical NAND placement behind an FTL, so locality-based write savings remain device- and workload-dependent. [1]

Citations

  1. Yi Ou, Theo Harder and Peiquan Jin. CFDC: A Flash-aware Replacement Policy for Database Buffer Management. DaMoN 2009, sections 3-5. (accessed 2026-10-31)
Sources & caveats
  • Historical database-buffer experiment; no modern-device speedup or replication is claimed.
  • Hesela's accompanying accounting model implements only fixed-window CFLRU, not CFDC.
  • The tested database engine was XTC and the SSD was a MTRON MSP-SATA7525. [1]

JSON: /data/terms/cfdc.json

Published by Hesela team · Updated

Report a correction · Editorial standards · Reuse guidance

Cite this page
Hesela team. Clean-First Dirty-Clustered (CFDC). Hesela. 2026-10-31. https://hesela.dev/terms/cfdc/