  Solid state drives have a number of interesting characteristics. However,
there are numerous file system and storage design issues for SSDs that impact
the performance and device endurance. Many flash-oriented and flash-friendly
file systems introduce significant write amplification issue and GC overhead
that results in shorter SSD lifetime and necessity to use the NAND flash
overprovisioning. SSDFS file system introduces several authentic concepts and
mechanisms: logical segment, logical extent, segment's PEBs pool,
Main/Diff/Journal areas in the PEB's log, Diff-On-Write approach, PEBs
migration scheme, hot/warm data self-migration, segment bitmap, hybrid b-tree,
shared dictionary b-tree, shared extents b-tree. Combination of all suggested
concepts are able: (1) manage write amplification in smart way, (2) decrease GC
overhead, (3) prolong SSD lifetime, and (4) provide predictable file system's
performance.
