帳號:guest(18.117.233.156)          離開系統
字體大小: 字級放大   字級縮小   預設字形  

詳目顯示

以作者查詢圖書館館藏以作者查詢臺灣博碩士論文系統以作者查詢全國書目
作者(中文):張耘盛
作者(外文):Chang, Yun-Sheng
論文名稱(中文):保序固態硬碟之設計、實現與應用
論文名稱(外文):Design, Realization, and Applications of an Order-Preserving Solid-State Drive
指導教授(中文):呂仁碩
指導教授(外文):Liu, Ren-Shuo
口試委員(中文):許雅三
劉靖家
口試委員(外文):Hsu, Yarsun
Liou, Jing-Jia
學位類別:碩士
校院名稱:國立清華大學
系所名稱:電機工程學系
學號:106061704
出版年(民國):108
畢業學年度:107
語文別:英文
論文頁數:42
中文關鍵詞:固態硬碟檔案系統資料庫系統意外復原寫入順序系統一致性原子性
外文關鍵詞:Solid-state driveFile systemDatabase systemCrash recoveryWrite orderSystem consistencyAtomicity
相關次數:
  • 推薦推薦:0
  • 點閱點閱:501
  • 評分評分:*****
  • 下載下載:0
  • 收藏收藏:0
消費者級別固態硬碟給予使用者非常少的保證。缺乏這些保證,程式設計者必須利用冗餘的寫入與回寫,來避免應用程式與檔案系統在遇到意外斷電或是程式崩潰時無法正常復原,但這些冗餘的寫入與回寫往往會降低整體系統的效能。雖然過去曾有研究提出創新的合同式介面固態硬碟來提供較強的保證,但使用這類型的固態硬碟無可避免會需要大幅度的軟體修改。因此,大部分消費者級別固態硬碟仍然使用標準的區塊式介面。
這篇論文打破過去普遍認為提升固態硬碟的保證必須透過改變硬碟介面的既定印象,提出了「順序保留轉譯與復原設計」來解決上述的問題。設計本身包含了一套創新的快閃轉譯層以及復原技術,賦予標準的區塊式固態硬碟更強的「操作層級保證」,該保證說明如下:第一,每一個寫入操作必須確定先前的寫入操作都被持續地保存下來才會被持續地保存;第二,每一個寫入操作皆為全有或全無;第三,所有在回寫操作之前的寫入操作都必須持續地被保存。我們將「順序保留轉譯與復原設計」實現在真實的固態硬碟平台,並透過優化應用程式與檔案系統(SQLite 與 Ext4)來展現該設計的好處。實驗結果顯示單純優化檔案系統可取得 1.27 倍的效能成長,同時優化檔案系統與應用程式可取得 2.85 倍的效能成長,取消所有檔案系統與應用程式的的回寫操作則可取得 6.03 倍的效能成長
Consumer-grade solid-state drives (SSDs) guarantee very few things upon a crash. Lacking a strong disk-level crash guarantee forces programmers to equip applications and filesystems with safety nets using redundant writes and flushes, which in turn degrade the overall system performance. Although some prior works propose transactional SSDs with revolutionized disk interfaces to offer strong crash guarantees, adopting transactional SSDs inevitably incurs dramatic software stack changes. Therefore, most consumer-grade SSDs still keep using the standard block device interface.
This thesis addresses the above issues by breaking the impression that increasing SSDs' crash guarantees are typically available at the cost of altering the standard block device interface. We propose Order-Preserving Translation and Recovery (OPTR), a collection of novel flash translation layer (FTL) and crash recovery techniques that are realized internal to block-interface SSDs to endow the SSDs with strong request-level crash guarantees defined as follows: 1) A write request is not made durable unless all its prior write requests are durable. 2) Each write request is atomic. 3) All write requests prior to a flush are guaranteed durable. We have realized OPTR in real SSD hardware and optimized applications and filesystems (SQLite and Ext4) to demonstrate OPTR's benefits. Experimental results show 1.27x (only Ext4 is optimized), 2.85x (both Ext4 and SQLite are optimized), and 6.03x times (an OPTR-enabled no-barrier mode) performance improvement.
誌謝 ii
摘要 iii
Abstract iv
1 Introduction 1
2 Background 7
2.1 Flash Translation Layers . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 High-Performance Schemes . . . . . . . . . . . . . . . . . . . . . . 8
2.3 SSD Recovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3 OPTR SSD Design 10
3.1 Write Completion Tracking . . . . . . . . . . . . . . . . . . . . . 10
3.2 Write Coalescing Tracking . . . . . . . . . . . . . . . . . . . . . . 11
3.3 Mapping Table Checkpointing . . . . . . . . . . . . . . . . . . . . 12
3.4 Garbage Collection . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.5 Order-Preserving Recovery . . . . . . . . . . . . . . . . . . . . . . 14
4 Filesystem and Application Optimizations 17
5 OPTR Design Validation 19
5.1 VST Testing Framework . . . . . . . . . . . . . . . . . . . . . . . 19
5.2 Extending VST for Crash Recovery Tests . . . . . . . . . . . . . . 20
5.3 Validation Results . . . . . . . . . . . . . . . . . . . . . . . . . . 21
6 Evaluation 23
6.1 Experimental Setups . . . . . . . . . . . . . . . . . . . . . . . . . 23
6.2 System-Level Performance . . . . . . . . . . . . . . . . . . . . . . 24
7 FTL Analyses 27
7.1 Extra Flash Page-Programs . . . . . . . . . . . . . . . . . . . . . 27
7.2 GC Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
7.3 Performance Overhead . . . . . . . . . . . . . . . . . . . . . . . . 30
7.4 Memory Overhead . . . . . . . . . . . . . . . . . . . . . . . . . . 31
7.5 Recovery Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
8 Related Work 33
9 Conclusion 36
References 38
[1] S. Jeong, K. Lee, S. Lee, S. Son, and Y. Won, “I/O stack optimization for smartphones,” in Proceedings of the 2013 USENIX Annual Technical Conference (ATC ’13), (San Jose, California, USA), 2013.
[2] C. Mohan, D. Haderle, B. Lindsay, H. Pirahesh, and P. Schwarz, “ARIES: A transaction recovery method supporting fine-granularity locking and partial rollbacks using write-ahead logging,” ACM Trans. Database Syst., vol. 17, pp. 94–162, Mar. 1992.
[3] G. R. Ganger, M. K. McKusick, C. A. N. Soules, and Y. N. Patt, “Soft updates: A solution to the metadata update problem in file systems,” ACM Trans. Comput. Syst., vol. 18, May 2000.
[4] O. Rodeh, J. Bacik, and C. Mason, “BTRFS: The Linux B-tree filesystem,” Trans. Storage, vol. 9, pp. 9:1–9:32, Aug. 2013.
[5] J. Corbet, “Barriers and journaling filesystems.” https://lwn.net/Articles/283161/, 2008.
[6] T. S. Pillai, V. Chidambaram, R. Alagappan, S. Al-Kiswany, A. C. ArpaciDusseau, and R. H. Arpaci-Dusseau, “All file systems are not created equal: On the complexity of crafting crash-consistent applications,” in Proceedings of the 11th USENIX Symposium on Operating Systems Design and Implementation (OSDI ’14), (Broomfield, Colorado, USA), 2014.
[7] V. Prabhakaran, T. L. Rodeheffer, and L. Zhou, “Transactional flash,” in Proceedings of the 8th USENIX Symposium on Operating Systems Design and Implementation (OSDI ’08), (San Diego, California, USA), 2008.
[8] X. Ouyang, D. Nellans, R. Wipfel, D. Flynn, and D. K. Panda, “Beyond block I/O: Rethinking traditional storage primitives,” in Proceedings of the 17th IEEE International Symposium on High Performance Computer Architecture (HPCA ’11), (Washington, DC, USA), 2011.
[9] W.-H. Kang, S.-W. Lee, B. Moon, G.-H. Oh, and C. Min, “X-FTL: Transactional FTL for SQLite databases,” in Proceedings of the 2013 ACM International Conference on Management of Data (SIGMOD ’13), (New York, New York, USA), 2013.
[10] Y. Lu, J. Shu, J. Guo, S. Li, and O. Mutlu, “LightTx: A lightweight transactional design in flash-based SSDs to support flexible transactions,” in Proceedings of the 31st IEEE International Conference on Computer Design (ICCD ’13), (Asheville, North Carolina, USA), 2013.
[11] J.-Y. Shin, M. Balakrishnan, T. Marian, and H. Weatherspoon, “Isotope: ACID transactions for block storage,” ACM Trans. Storage, vol. 13, pp. 4:14:25, Feb. 2017.
[12] Y.-S. Chang and R.-S. Liu, “OPTR: Order-preserving translation and recovery design for SSDs with a standard block device interface,” in Proceedings of the 2019 USENIX Annual Technical Conference (ATC ’19), (Renton, WA), pp. 1009–1024, USENIX Association, July 2019.
[13] Y. Won, J. Jung, G. Choi, J. Oh, S. Son, J. Hwang, and S. Cho, “Barrierenabled IO stack for flash storage,” in Proceedings of the 16th USENIX Conference on File and Storage Technologies (FAST ’18), (Oakland, California, USA), 2018.
[14] “Potential bug in crash-recovery code: unlink() and friends are not synchronous.” http:// sqlite. 1065341.n5.nabble.com/ Potential-bug-in-crashrecovery-code-unlink-and-friends-are-not-synchronous-td68885.html.
[15] J. Cipar, G. Ganger, K. Keeton, C. B. Morrey, III, C. A. Soules, and A. Veitch, “Lazybase: Trading freshness for performance in a scalable database,” in Proceedings of the 7th ACM European Conference on Computer Systems (EuroSys ’12), (Bern, Switzerland), 2012.
[16] “OpenSSD (www.openssd-project.org/).”
[17] A. Kawaguchi, S. Nishioka, and H. Motoda, “A flash-memory based file system,” in Proceedings of the 1995 USENIX Technical Conference (TCON ’95), (New Orleans, Louisiana, USA), 1995.
[18] M. Rosenblum and J. K. Ousterhout, “The design and implementation of a log-structured file system,” ACM Trans. Comput. Syst., vol. 10, pp. 26–52, Feb. 1992.
[19] E. H. Nam, B. S. J. Kim, H. Eom, and S. L. Min, “Ozone (O3): An out-oforder flash memory controller architecture,” IEEE Trans. Comput., vol. 60, pp. 653–666, May 2011.
[20] M. Jung, E. H. Wilson, III, and M. Kandemir, “Physically addressed queueing (PAQ): Improving parallelism in solid state disks,” in Proceedings of the 39th International Symposium on Computer Architecture (ISCA ’12), (Portland, Oregon, USA), 2012.
[21] N. Elyasi, M. Arjomand, A. Sivasubramaniam, M. T. Kandemir, C. R. Das, and M. Jung, “Exploiting intra-request slack to improve SSD performance,” in Proceedings of the 22nd International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS ’17), (Xi’an, China), 2017.
[22] D. Kim, Y. Won, J. Cha, S. Yoon, J. Choi, and S. Kang, “Exploiting compression-induced internal fragmentation for power-off recovery in SSD,” IEEE Transactions on Computers, vol. 65, pp. 1720–1733, June 2016.
[23] J.-Y. Choi, E. H. Nam, Y. J. Seong, J. H. Yoon, S. Lee, H. S. Kim, J. Park, Y.-J. Woo, S. Lee, and S. L. Min, “Hil: A framework for compositional FTL development and provably-correct crash recovery,” ACM Trans. Storage, vol. 14, pp. 36:1–36:29, Dec. 2018.
[24] Y.-M. Chang, P.-H. Lin, Y.-J. Lin, T.-C. Kuo, Y.-H. Chang, Y.-C. Li, H.-P. Li, and K. Wang, “An efficient sudden-power-off-recovery design with guaranteed booting time for solid state drives,” in Proceedings of the 8th IEEE International Memory Workshop (IMW ’16), (Paris, France), 2016.
[25] N. Agrawal, V. Prabhakaran, T. Wobber, J. D. Davis, M. Manasse, and R. Panigrahy, “Design tradeoffs for SSD performance,” in Proceedings of the 2008 USENIX Annual Technical Conference (ATC ’08), (Boston, Massachusetts, USA), 2008.
[26] A. Birrell, M. Isard, C. Thacker, and T. Wobber, “A design for highperformance flash disks,” SIGOPS Oper. Syst. Rev., vol. 41, pp. 88–93, Apr. 2007.
[27] M. Bjørling, J. González, and P. Bonnet, “Lightnvm: The Linux open-channel SSD subsystem,” in Proceedings of the 15th USENIX Conference on File and Storage Technologies (FAST ’17), (Santa Clara, California, USA), 2017.
[28] “Atomic commit in SQLite.” https://www.sqlite.org/atomiccommit.html.
[29] “Pragma statements supported by SQLite.” https:// www.sqlite.org/ pragma.html#pragma_synchronous.
[30] R.-S. Liu, Y.-S. Chang, and C.-W. Hung, “VST: A virtual stress testing framework for discovering bugs in SSD flash-translation layers,” in Proceedings of the 2017 IEEE/ACM International Conference on Computer-Aided Design (ICCAD ’17), (Irvine, California, USA), 2017.
[31] D. Narayanan, A. Donnelly, and A. Rowstron, “Write off-loading: Practical power management for enterprise storage,” Trans. Storage, vol. 4, pp. 10:1–10:23, Nov. 2008.
[32] Y. Zhang, G. Soundararajan, M. W. Storer, L. N. Bairavasundaram, S. Subbiah, A. C. Arpaci-Dusseau, and R. H. Arpaci-Dusseau, “Warming up storage-level caches with bonfire,” in Proceedings of the 11th USENIX Conference on File and Storage Technologies (FAST ’13), (San Jose, California, USA), 2013.
[33] “SpecTek NAND flash detail: TLC 8192Gb.” https://www.spectek.com/menus/flash_detail.aspx?memType=TLC+8192Gb, 2019.
[34] V. Chidambaram, T. S. Pillai, A. C. Arpaci-Dusseau, and R. H. ArpaciDusseau, “Optimistic crash consistency,” in Proceedings of the 24th ACM Symposium on Operating Systems Principles (SOSP ’13), (Farminton, Pennsylvania, USA), 2013.
[35] C. Frost, M. Mammarella, E. Kohler, A. de los Reyes, S. Hovsepian, A. Matsuoka, and L. Zhang, “Generalized file system dependencies,” in Proceedings of 21st ACM Symposium on Operating Systems Principles (SOSP ’07), (Stevenson, Washington, USA), 2007.
[36] C. Chao, R. English, D. Jacobson, A. Stepanov, E. Stepanov, J. Wilkes, R. Wagner, and S. I, “Mime: A high performance parallel storage device with strong recovery guarantees,” Tech. Rep. HPL–CSP–92–9 rev 1, HewlettPackard Laboratories, 1992.
[37] W. de Jonge, M. F. Kaashoek, and W. C. Hsieh, “The logical disk: A new approach to improving file systems,” in Proceedings of the 14th ACM Symposium on Operating Systems Principles (SOSP ’93), (Asheville, North Carolina, USA), 1993.
[38] R. Sears and E. Brewer, “Stasis: Flexible transactional storage,” in Proceedings of the 7th USENIX Symposium on Operating Systems Design and Implementation (OSDI ’06), (Seattle, Washington, USA), 2006.
[39] J. Coburn, T. Bunker, M. Schwarz, R. Gupta, and S. Swanson, “From ARIES to MARS: Transaction support for next-generation, solid-state drives,” in Proceedings of the 24th ACM Symposium on Operating Systems Principles (SOSP ’13), (Farminton, Pennsylvania, USA), 2013.
[40] M. Zheng, J. Tucek, D. Huang, F. Qin, M. Lillibridge, E. S. Yang, B. W. Zhao, and S. Singh, “Torturing databases for fun and profit,” in Proceedings of the 11th USENIX Symposium on Operating Systems Design and Implementation (OSDI ’14), (Broomfield, Colorado, USA), 2014.
[41] J. Bornholt, A. Kaufmann, J. Li, A. Krishnamurthy, E. Torlak, and X. Wang, “Specifying and checking file system crash-consistency models,” in Proceedings of the 21st International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS ’16), (Atlanta, Georgia, USA), 2016.
[42] “Using cache barriers in lieu of REQ_FLUSH | REQ_FUA for eMMC 5.1.” https://www.spinics.net/lists/linux-ext4/msg48992.html.
[43] Y.-S. Chang and R.-S. Liu, “Improving the performance of SQLite and Ext4 using order-preserving SSDs,” in 17th USENIX Conference on File and Storage Technologies Work-in-Progress Reports (FAST WiPs ’19), (Boston, Massachusetts, USA), 2019.
[44] D. Park and D. Shin, “iJournaling: Fine-grained journaling for improving the latency of fsync system call,” in Proceedings of the 2017 USENIX Annual Technical Conference (ATC ’17), (Santa Clara, California, USA), 2017.
[45] V. Chidambaram, T. Sharma, A. C. Arpaci-Dusseau, and R. H. ArpaciDusseau, “Consistency without ordering,” in Proceedings of the 10th USENIX Conference on File and Storage Technologies (FAST ’12), (San Jose, California, USA), 2012.
[46] E. B. Nightingale, K. Veeraraghavan, P. M. Chen, and J. Flinn, “Rethink the sync,” ACM Trans. Comput. Syst., vol. 26, pp. 6:1–6:26, Sept. 2008.
[47] Q. Chen, L. Liang, Y. Xia, H. Chen, and H. Kim, “Mitigating sync amplification for copy-on-write virtual disk,” in Proceedings of the 14th Usenix Conference on File and Storage Technologies (FAST ’16), (Santa Clara, California, USA), 2016.
[48] M. Zheng, J. Tucek, F. Qin, and M. Lillibridge, “Understanding the robustness of SSDs under power fault,” in Proceedings of the 11th USENIX Conference on File and Storage Technologies (FAST ’13), (San Jose, California, USA), 2013.
[49] F. Gao and D. Verburg, “SSD’s reliability failure mode and it’s supercapacitor failure,” in Proceedings of South East Asia Technical Conference on Electronics Assembly Technologies, (Penang, Malaysia), 2016.
 
 
 
 
第一頁 上一頁 下一頁 最後一頁 top
* *