160 likes | 340 Views
A Study of Linux File System Evolution. L. Lu, A. C. Arpaci-Dusseau , R. H. ArpaciDusseau , S. Lu. Kilmo Choi rlfah926@naver.com. 최길 모. Index. Introduction Patch Overview File System Bugs Performance and Reliability Conclusion. Introduction.
E N D
A Study of Linux File System Evolution L. Lu, A. C. Arpaci-Dusseau, R. H. ArpaciDusseau, S. Lu Kilmo Choi rlfah926@naver.com 최길모
Index • Introduction • Patch Overview • File System Bugs • Performance and Reliability • Conclusion
Introduction • Open-source local file-systems remain a critical component in the world of modern storage(ex. Distributed file system, Smart phone) • Target file-systems • Every file-system in Linux 2.6 series(2.6.0~2.6.39) over a period of 8 years including 5079 patches • Ext3, Ext4, XFS, Btrfs, ReiserFS, JFS • Patches category • Bug, performance, reliability, etc.
Patch Overview • Investigate general questions regarding file-system patches • patch type, patch trend, patch size • Patch Type
Patch Overview • Patch Trend • While the number of patches per version increased in general, the percentage of patch type relatively stable • Bug patches do not decrease over time • Patch Size • Way to quantify the complexity of patch
File System Bugs • Correlation Between Code and Bugs
File System Bugs • Bug Patterns and Trends • Fine-grained bug patterns provide useful information to developer and tool builders
File System Bugs • Bug Consequence
File System Bugs • Bug Pattern Examples and Analysis • Semantic Bugs
File System Bugs • Concurrency Bugs
File System Bugs • Memory Bugs
File System Bugs • Error Code Bugs
Performance and Reliability • Performance Patches • Synchronization • Inefficient usage of synchronization methods • removing unnecessary locks, using smaller locks • Access Optimization • Apply smarter access strategies • caching metadata and statistics, avoiding unnecessary I/O and computing • Schedule • Improve I/O operation scheduling • batching writes, opportunistic readhead
Performance and Reliability • Reliability • Robust • Enhance file-system robustness • boundary limits and access permission checking • Corruption Defense • Improve file systems ability to handle various possible corruption • Error Enhancement • Improve original error handling • Annotation • user/kernel space pointer and lock annotation for early bug detection • Debug • Add more internal debugging or tracing support
Conclusion • 5079 patches across six linux file system • Nearly 1800 bugs • “Software archeology” • Should be of utility to file-system developersand tool makers