A Durable Hybrid RAM Disk with a Rapid Resilience for Sustainable IoT Devices
Abstract
:1. Introduction
2. Related Work
3. Durable Hybrid RAM Disk
3.1. Architecture
3.2. Basic Primitives
- Reads: Figure 3a shows the read operation of DHRD. The data contained in the RAM disk are always the same as those in the SSD; therefore, all read requests delivered to DHRD are forwarded only to the volatile memory. In other words, read operations are performed only in the RAM disk.
- Writes: All write requests delivered to DHRD are sent to both the RAM disk and the SSD. After two writes are completed in these two lower devices, the response for the request is delivered to the upper level of the DHRD. The in the figure represents the response for the request meaning the I/O is completed. As a summary, the write operation works like a mirrored RAID.
- Initialization: The initialization is performed after the system boots. When the system boots, DHRD copies the contents of the SSD to the RAM disk so that the RAM disk can now become the SSD. Generally, the initialization time is quite long; however, the read and write operations can be performed during this initialization time itself in the DHRD. The detailed read and write operations during the initialization is described in the next subsection.
3.3. Rapid Resilience with a Fast Initialization
3.3.1. Writes During Initialization
- Case 1: A write request sent to a chunk before being initialized is blocked until the initialization for that chunk completes. When the DHRD has finished copying the chunk to the RAM, all blocked write requests to the chunk are resumed and processed as the initialized chunk.
- Case 2: Write requests to initialized chunks are processed as normal writes. This means that the write requests are delivered to both the SSD and the RAM disk.
- Case 3: A write request to an uninitialized chunk is sent only to the SSD. The data written to the SSD will later be copied to the RAM disk by the initialization process. A write request locks the corresponding chunk and unlocks it after finishing the write operation. When the locked chunk is chosen for initialization, the initialization process is suspended and resumed only when the chunk is unlocked by the completion of the write operation. As shown in Figure 4, while a write request to the uninitialized Chunk 4 is being processed, Chunk 4 is locked, Chunk 3 has finished initialization, and the next initialization for Chunk 4 is blocked. The blocked initialization resumes after all writes for Chunk 4 are completed.
3.3.2. Reads During Initialization
- Case 1: Read requests to initialized chunks are processed only on the RAM disk.
- Case 2: Read requests to chunks that are being initialized or were uninitialized are delivered only to the SSD.
3.4. Direct Byte Read
3.4.1. Compatible Interface
3.4.2. Direct Byte Read and Buffered Write
- Page not found: When a read request is transferred to the VFS, the VFS checks whether there is buffered data in the page cache. If it is not there, the read request is processed by the DBR.
- Page found: If there is a buffered page that corresponds to the read request, the data in the buffered page is transferred to the application buffer.
4. Evaluation
4.1. Experimental Setup
4.2. Block-Level Experiments
4.3. File-Level Experiments
4.4. Hybrid Storage Devices and DVR Applications
5. Conclusions
Author Contributions
Funding
Acknowledgments
Conflicts of Interest
References
- Bagatin, M.; Gerardin, S.; Paccagnella, A.; Beltrami, S.; Camerlenghi, E.; Bertuccio, M.; Costantino, A.; Zadeh, A.; Ferlet-Cavrois, V.; Santin, G.; et al. Effects of heavy-ion irradiation on vertical 3-D NAND flash memories. IEEE Trans. Nucl. Sci. 2017, 65, 318–325. [Google Scholar] [CrossRef]
- Fedorchenko, A.; Kotenko, I.V.; Chechulin, A. Integrated Repository of Security Information for Network Security Evaluation. JoWUA 2015, 6, 41–57. [Google Scholar]
- Android Things. Available online: https://developer.android.com/things (accessed on 10 April 2020).
- Ninglekhu, J.; Krishnan, R.; John, E.; Panday, M. Securing Implantable Cardioverter Defibrillators Using Smartphones. J. Internet Serv. Inf. Secur. (JISIS) 2015, 5, 47–64. [Google Scholar]
- Jo, H.; Kang, J.U.; Park, S.Y.; Kim, J.S.; Lee, J. FAB: Flash-aware buffer management policy for portable media players. IEEE Trans. Consum. Electron. 2006, 52, 485–493. [Google Scholar]
- Kim, H.; Ahn, S. BPLRU: A buffer management scheme for improving random writes in flash storage. Usenix FAST 2008, 8, 239–252. [Google Scholar]
- Li, Z.; Jin, P.; Su, X.; Cui, K.; Yue, L. CCF-LRU: A new buffer replacement algorithm for flash memory. IEEE Trans. Consum. Electron. 2009, 55, 1351–1359. [Google Scholar] [CrossRef]
- Zuolo, L.; Zambelli, C.; Micheloni, R.; Olivo, P. Memory driven design methodologies for optimal SSD performance. In Inside Solid-State Drives; Springer: Singapore, 2018; pp. 181–204. [Google Scholar]
- Du, C.; Yao, Y.; Zhou, J.; Xu, X. VBBMS: A Novel Buffer Management Strategy for NAND Flash Storage Devices. IEEE Trans. Consum. Electron. 2019, 56, 1351–1359. [Google Scholar] [CrossRef]
- RAM drive, 2020. Wikipedia. Available online: https://en.wikipedia.org/wiki/RAM_drive (accessed on 10 April 2020).
- Koutoupis, P. The linux ram disk. LiNUX+ Magzine 2009, 36–39. [Google Scholar]
- Diehl, S.T. System and Method for Persistent Ram Disk. US Patent 7,594,068, 22 September 2009. [Google Scholar]
- Baek, S.H. A durable and persistent in-memory storage for virtual desktop infrastures. J. Korean Insti. Next Gen. Comput. 2016, 12, 23–31. [Google Scholar]
- Ousterhout, J.; Gopalan, A.; Gupta, A.; Kejriwal, A.; Lee, C.; Montazeri, B.; Ongaro, D.; Park, S.J.; Qin, H.; Rosenblum, M.; et al. The ramcloud storage system. ACM Trans. on Comp. Sys. (TOCS) 2015, 33, 1–55. [Google Scholar] [CrossRef] [Green Version]
- Garcia-Molina, H.; Salem, K. Main memory database systems: An overview. IEEE Trans. Knowl. Data Eng. 1992, 4, 509–516. [Google Scholar] [CrossRef]
- Fitzpatrick, B. Distributed caching with memcached. Linux J. 2004, 124, 5. [Google Scholar]
- Ousterhout, J.; Agrawal, P.; Erickson, D.; Kozyrakis, C.; Leverich, J.; Mazières, D.; Mitra, S.; Narayanan, A.; Parulkar, G.; Rosenblum, M.; et al. The case for ramclouds: scalable high-performance storage entirely in dram. Acm Sigops Oper. Syst. Rev. 2010, 43, 92–105. [Google Scholar] [CrossRef]
- Zaharia, M.; Chowdhury, M.; Das, T.; Dave, A.; Ma, J.; McCauley, M.; Franklin, M.J.; Shenker, S.; Stoica, I. Resilient distributed datasets: A fault-tolerant abstraction for in-memory cluster computing. In Proceedings of the 9th USENIX Symposium on Networked Systems Design and Implementation, San Jose, CA, USA, 25–27 April 2012. [Google Scholar]
- Ma, Z.; Hong, K.; Gu, L. Volume: Enable large-scale in-memory computation on commodity clusters. In Proceedings of the IEEE 5th International Conference on Cloud Computing Technology and Science, Bristol, UK, 2–5 December 2013; pp. 56–63. [Google Scholar]
- Kim, J.; Jo, S.; Oh, D.; Noh, J. An analysis on the technology stack of cloud computing. J. Korean Insti. Next Gen. Comput. 2015, 11, 79–89. [Google Scholar]
- Rathod, S.B.; Reddy, V.K. NDynamic framework for secure vm migration over cloud computing. J. Inf. Proc. Syst. 2017, 13, 476–490. [Google Scholar]
- Cisco Systems Press. Diskless Vdi with Cisco Ucs & Atlantis Ilio Eliminating Storage from Vdi Architectures. White Paper Aug.. 2011. Available online: http://bit.ly/ciscoatlantisdisklessvdi (accessed on 10 April 2020).
- Technology, K. Memory and Storage Best Practices for Desktop Virtualization: Balancing User Experience, Cost and Flexibility. White Paper. 2013. Available online: https://media.kingston.com/pdfs/MemoryandStorageBestPracticesforDesktopVirtualization_lr.pdf (accessed on 10 April 2020).
- Nishtala, R.; Fugal, H.; Grimm, S.; Kwiatkowski, M.; Lee, H.; Li, H.C.; McElroy, R.; Paleczny, M.; Peek, D.; Saab, P.; et al. scaling memcache at facebook. In Proceedings of the 10th USENIX Symposium on Networked Systems Design and Implementation, Seattle, DC, USA, 2–5 April 2013; pp. 385–398. [Google Scholar]
- Caramia, M.; Di Carlo, S.; Fabiano, M.; Prinetto, P. Flash-memories in space applications: Trends and challenges. In Proceedings of the East-West Design & Test Symposium (EWDTS), Moscow, Russia, 18–21 September 2009; pp. 18–21. [Google Scholar]
- Hoseinzadeh, M. A Survey on Tiering and Caching in High-Performance Storage Systems. arXiv 2019, arXiv:1904.11560. [Google Scholar]
- Niu, J.; Xu, J.; Xie, L. Hybrid storage systems: a survey of architectures and algorithms. IEEE Access 2018, 6, 13385–13406. [Google Scholar] [CrossRef]
- Baek, S.H.; Park, K.W. A fully persistent and consistent read/write cache using flash-based general SSDs for desktop workloads. Inf. Syst. 2016, 58, 24–42. [Google Scholar] [CrossRef]
- Baek, S.H. A byte direct i/o for ram-based storages. Adv. Sci. Lett. 2017, 23, 9506–9510. [Google Scholar] [CrossRef]
- Search Engine I/O, uMass Trace Repository. Available online: http://traces.cs.umass.edu/index.php/Storage/Storage (accessed on 10 April 2020).
- Robbins, D. Common threads: Advanced filesystem implementer’s guide, Part 9, Introducing XFS, In Developer Works; IBM: Armonk, NY, USA, 2002. [Google Scholar]
- Tarasov, V.; Zadok, E.; Shepler, S. Filebench: A flexible framework for file system benchmarking. Usenix Mag. 2016, 41, 6–12. [Google Scholar]
- Kgil, T.; Mudge, T. FlashCache: a NAND flash memory file cache for low power web servers. In Proceedings of the 2006 International Conference on Compilers, Architecture and Synthesis for Embedded Systems, Seoul, Korea, 22–25 October 2006. [Google Scholar]
- PC Matic Research, Average PC Memory (RAM) Continues to Clim. Available online: https://techtalk.pcmatic.com/2016/10/05/average-pc-memory-ram-continues-climb/ (accessed on 10 April 2020).
© 2020 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).
Share and Cite
Baek, S.H.; Park, K.-W. A Durable Hybrid RAM Disk with a Rapid Resilience for Sustainable IoT Devices. Sensors 2020, 20, 2159. https://doi.org/10.3390/s20082159
Baek SH, Park K-W. A Durable Hybrid RAM Disk with a Rapid Resilience for Sustainable IoT Devices. Sensors. 2020; 20(8):2159. https://doi.org/10.3390/s20082159
Chicago/Turabian StyleBaek, Sung Hoon, and Ki-Woong Park. 2020. "A Durable Hybrid RAM Disk with a Rapid Resilience for Sustainable IoT Devices" Sensors 20, no. 8: 2159. https://doi.org/10.3390/s20082159
APA StyleBaek, S. H., & Park, K.-W. (2020). A Durable Hybrid RAM Disk with a Rapid Resilience for Sustainable IoT Devices. Sensors, 20(8), 2159. https://doi.org/10.3390/s20082159