{"title":"Coarse-grained mtime update for better fsync() performance","authors":"H. Son, Seongjin Lee, Gyeongyeol Choi, Y. Won","doi":"10.1145/3019612.3019739","DOIUrl":null,"url":null,"abstract":"This work is dedicated to improve the performance of the fsync(), which is one of the most expensive system calls in UNIX operating systems. Due to the recent advancement of the Flash storage based storage device, the storage device can flush the data blocks in order of magnitudes faster than the legacy HDDs. Often, the rate of flushing the data blocks to the storage device prevails the rate of CPU updating the file system time. The amount of the dirty blocks created in the system depends on the timer interrupt interval of the kernel. Read and write operations update the atime and mtime metadata, respectively. These timestamps are useful; however, there is significant performance degradation due to frequent updates of the metadata. Now in the file system, atime has several options to mediate between usefulness and performance efficiency. Most of the Database Management Systems frequently perform fsync() to guarantee the consistency of user data. The synchronous writes involve journaling overhead of updating mtime metadata in EXT4 file system. However, the effect of frequent update of mtime on write intensive workload has been overlooked. We introduce coarse-grained mtime update scheme to increase the mtime/ctime timestamp update interval while maintaining the same level of resolution for kernel time interrupts. As a result, coarse-grained update interval scheme reduces the journaling overhead with the least effort. The experiment results show that the I/O performance of random workload on mobile and PC increased about 7+ and 107+ against the default mtime update interval, respectively. The result of insert operations on PERSIST mode of SQLite on mobile and PC shows 8.4+ and 45.1+ of I/O performance increase, respectively. On MySQL OLTP workload, the performance increased by 7.9+.","PeriodicalId":20728,"journal":{"name":"Proceedings of the Symposium on Applied Computing","volume":null,"pages":null},"PeriodicalIF":0.0000,"publicationDate":"2017-04-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"2","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the Symposium on Applied Computing","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3019612.3019739","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 2
Abstract
This work is dedicated to improve the performance of the fsync(), which is one of the most expensive system calls in UNIX operating systems. Due to the recent advancement of the Flash storage based storage device, the storage device can flush the data blocks in order of magnitudes faster than the legacy HDDs. Often, the rate of flushing the data blocks to the storage device prevails the rate of CPU updating the file system time. The amount of the dirty blocks created in the system depends on the timer interrupt interval of the kernel. Read and write operations update the atime and mtime metadata, respectively. These timestamps are useful; however, there is significant performance degradation due to frequent updates of the metadata. Now in the file system, atime has several options to mediate between usefulness and performance efficiency. Most of the Database Management Systems frequently perform fsync() to guarantee the consistency of user data. The synchronous writes involve journaling overhead of updating mtime metadata in EXT4 file system. However, the effect of frequent update of mtime on write intensive workload has been overlooked. We introduce coarse-grained mtime update scheme to increase the mtime/ctime timestamp update interval while maintaining the same level of resolution for kernel time interrupts. As a result, coarse-grained update interval scheme reduces the journaling overhead with the least effort. The experiment results show that the I/O performance of random workload on mobile and PC increased about 7+ and 107+ against the default mtime update interval, respectively. The result of insert operations on PERSIST mode of SQLite on mobile and PC shows 8.4+ and 45.1+ of I/O performance increase, respectively. On MySQL OLTP workload, the performance increased by 7.9+.