Hope you have read
This comparison table is taken from the book “Architecture and Design of the Linux Storage Stack” which I find useful to help understand the differences between the two.
Journaling | Copy-On-Write | |
Write handling | Changes are recorded in a journal before applying them to the actual file system | A separate copy of data is created to make modifications |
Original data | Original data gets overwritten | Original data remains intact |
Data Consistency | Ensures consistency by recording metadata changes and replaying them if needed | Ensures consistency by never modifying the original data |
Performance | Minimal overhead depending on the type of journaling mode | Some performance gains because of faster writes |
Space utilisation | Journal size is typically in MB, so no additional space is required | More space is required due to separate copies of data |
Recovery times | Fast recovery times as the journal can be replaced instantly | Slower recovery times as data needs to be reconstructed using recent copies |
Features | No built-in support for features such as compression or deduplication | Built-in support for compression and deduplication |