Per-Block-Group Journaling for Ordered Mode File Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional journaling methods in file systems, such as EXT4, face increased response times during fsync system calls due to the need to record all metadata and data in the journal area, even for files not directly involved in the transaction, leading to inefficiencies and potential system inconsistency.
Innovation Solution
Implementing per-block-group journaling, where only the block-group-level transaction corresponding to the fsync system call is extracted and recorded in the journal area, allowing for separate processing of metadata and data, thereby reducing the execution time and maintaining system consistency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If journaling is executed per compound transaction in ordered mode, then file system consistency is maintained, but response time for fsync system call increases due to processing unnecessary files
Solution Approach 1:
The patent segments the compound transaction into individual block-group level transactions. When an fsync system call occurs for a specific file, only the transaction corresponding to that file's block group is extracted and processed for journaling, rather than processing the entire compound transaction. This segmentation reduces the amount of data processed during fsync while maintaining consistency within the relevant block group.
Solution Approach 2:
The patent extracts only the necessary block-group level transaction from the compound transaction based on the fsync system call parameters. By identifying and extracting only the relevant transaction portion that corresponds to the file being synced, the system avoids processing unnecessary metadata and data from other files in the compound transaction, thereby reducing fsync response time while preserving file system consistency.
2Reliability
If all metadata and data are recorded in the journal area during ordered journaling, then file system consistency is ensured, but execution time increases due to processing unnecessary data
Solution Approach 1:
The journaling process is segmented to operate at the block-group level rather than processing the entire compound transaction. Only metadata and data belonging to the specific block group affected by the fsync system call are recorded in the journal area, significantly reducing the volume of data processed and improving journaling execution speed while maintaining consistency for the relevant files.
Solution Approach 2:
The patent extracts and processes only the necessary metadata and data from the compound transaction that are relevant to the fsync system call. By filtering out and excluding unnecessary data from other files, the system reduces the amount of data written to the journal area, thereby improving execution speed without compromising the consistency of the synced file.
3Reliability
If journaling processes compound transactions as a whole, then consistency across all files is maintained, but response time increases due to inclusion of unrelated files
Solution Approach 1:
The patent segments the journaling operation to process only the block-group level transaction corresponding to the fsync system call. The journal thread is instructed to process only this specific segment rather than the entire compound transaction, reducing processing time while maintaining consistency within the relevant block group through proper transaction boundaries.
Solution Approach 2:
The patent extracts the specific block-group level transaction from the compound transaction based on the fsync system call parameters. By taking out only the relevant transaction portion and excluding unrelated files, the journal thread processes less data, reducing response time while preserving the consistency of the targeted file through dedicated transaction processing.
Data Source
AI summary
In accordance with a first exemplary embodiment, there is provided a computing device. The device includes a memory equipped with a program operating a file system supporting ordered mode journaling; and a processor operating the program stored in the memory. Wherein according to execution of the program, when an fsync system call for the file stored in the memory occurs, the processor extracts a block-group-level transaction corresponding to the file from a compound transaction including the file, records the transaction in a data area of the memory, and executes journaling of the transaction in a journal area of the memory.


