DOI QR코드

DOI QR Code

An Efficient Flash Memory B-Tree Supporting Very Cheap Node Updates

플래시 메모리 B-트리를 위한 저비용 노드 갱신 기법

  • 임성채 (동덕여자대학교 컴퓨터학과)
  • Received : 2016.06.23
  • Accepted : 2016.07.13
  • Published : 2016.08.28

Abstract

Because of efficient space utilization and fast key search times, B-trees have been widely accepted for the use of indexes in HDD-based DBMSs. However, when the B-ree is stored in flash memory, its costly operations of node updates may impair the performance of a DBMS. This is because the random updates in B-tree's leaf nodes could tremendously enlarge I/O costs for the garbage collecting actions of flash storage. To solve the problem, we make all the parents of leaf nodes the virtual nodes, which are not stored physically. Rather than, those nodes are dynamically generated and buffered by referring to their child nodes, at their access times during key searching. By performing node updates and tree reconstruction within a single flash block, our proposed B-tree can reduce the I/O costs for garbage collection and update operations in flash. Moreover, our scheme provides the better performance of key searches, compared with earlier flash-based B-trees. Through a mathematical performance model, we verify the performance advantages of the proposed flash B-tree.

B-트리는 공간 효율성과 빠른 키 검색 시간으로 인해 하드 디스크 기반 DBMS의 색인 기법으로 널리 쓰이고 있다. 하지만 B-트리를 플래시 메모리에 저장해 사용한다면, 높은 노드 갱신 비용으로 인해 DBMS 성능을 크게 저하시킬 수 있다. 이는 B-트리 단말노드에 발생하는 임의(random) 갱신 연산이 플래시 저장 장치의 과도한 가비지 수집 비용을 낳을 수 있기 때문이다. 논문에서는 이런 문제를 막기 위해 단말노드의 부모 계층 노드들을 물리적으로 저장하지 않고 가상(virtual) 노드로 둔다. 키 검색을 위해 가상 노드가 필요할 때는 자식 노드들을 참조하여 가상 노드를 동적으로 생성한 후 버퍼에 두고 사용한다. 제안된 플래시 B-트리 알고리즘은 노드 갱신과 트리 재구성 동작이 단일 플래시 블록 안에서 수행되기 때문에 가비지 수집 비용과 노드 갱신 비용을 낮게 할 수 있다. 또한 기존에 제안된 플래시 기반 B-트리와 비교하여 매우 빠른 키 검색 시간을 보장한다. 논문에서는 수학적 성능 모델을 통해 제안된 플래시 B-트리의 성능을 검증한다.

Keywords

References

  1. S. W. Lee, B. Moon, and C. Park, "Advances in Flash Memory SSD Technology for Enterprise Database Applications," In Proceedings of SIGMOD, 2009.
  2. Stepahan Baumann, Giel de Nijs, Michael Strobel, and Kai-Uwe Sattler, "Flashing Databases: Expectations and Limitations," In Proceedings of DaMon (Data Management on New Hardware), 2010.
  3. Adam Leventhal, "Flash Storage Memory," Communications of the ACM, Vol.51, No.7, pp.47-51, 2008. https://doi.org/10.1145/1364782.1364796
  4. S. J. Lee, D. K. Shin, Y. J. Kim, and J. H. Kim, "LAST: Locality-Aware Sector Translation for NAND Flash Memory-based Storage Systems," ACM SIGOPS Review, pp.36-42, 2008.
  5. Asyush Gupta, Y. J. Kim, and Bhuvan Urgaonkar, "DFTL: A Flash Translation Layer Employing Demand-based Selective Caching of Page-level Address Mappings," In Proceedings of ASPLOS, 2009.
  6. G. J. Na, S. W. Lee, and B. K. Moon, "Dynamic In-Page Logging for B+-tree Index," IEEE Transactions on Knowledge and Data Engineering, Vol.24, No.7, pp.1231-1243, 2012. https://doi.org/10.1109/TKDE.2011.32
  7. C. Mohan, Bruce Lindsay, Hamid Pirahesh, and Peter Schwarz, "ARIES: A Transaction Recovery Method Supporting Fine-Granularity Locking and Partial Rollbacks Using Write-Ahead Logging," ACM Trans. on Database Systems, Vol.17, No.1, pp.94-162, 1992. https://doi.org/10.1145/128765.128770
  8. Devesh Agrawal, Deepak Ganesan, Ramesh Sitaraman, Yanlei Diao, and Shashi Singh, "Lazy-Adaptive Tree: An Optimized Index Structure for Flash Devices," In Proceedings of VLDB, pp.361-372, Aug. 2009.
  9. S. W. Lee and B. K. Moon, "Design of Flash-based DBMS: An In-page Logging Approach," In Proceedings, of ACM SIGMOD, pp.55-66, 2007.
  10. S. W. Lee and B. K. Moon, "Transactional In-Page Logging for Multiversion Read Consistency and Recovery," In Proceedings of ICDE, pp.876-887, 2011.
  11. Patrick E. O'Neil, Edward Cheng, Dieter Gawlick, and Elizabeth J. O'Neil, "The Log-Structured Merge-Tree (LSM-Tree)," Acta Informatica, Vol.33, No, pp.351-385, 1996. https://doi.org/10.1007/s002360050048
  12. 임성채, 박창섭, "효율적 범위 검색을 위한 플래시 기반 B+-트리," 한국콘텐츠학회논문지, 제13권, 제9호, pp.28-38, 2013. https://doi.org/10.5392/JKCA.2013.13.09.028
  13. Xiaoyan Xiang, Lihua Yue, Zhanzhan Liu, and Peng Wei, "A Reliable B-Tree Implementation over Flash Memory," In Proceedings of ACM SAC, pp.1487-1491, 2008.
  14. 김학철, 박용훈, 윤종현, 서동민, 송석일, 유재수, "Hot 데이터 블록 병합 지연을 이용한 효율적인 메모리 로그 버퍼 관리 기법," 한국콘텐츠학회논문지, 제10권, 제1호, pp.68-77, 2010. https://doi.org/10.5392/JKCA.2010.10.1.068
  15. Marcel Kornacker, C. Mohan, and Joseph Hellerstein, "Concurrency and Recovery in Generalized Search Trees," In Proc. Of SIGMOD, 1997.
  16. Mustafa Ganim, George A. Mihaila, Bishwaranjan Bhattacharjee, Kenneth A. Ross, and Christian A. Lan, "SSD Bufferpool Extensions for Database Systems," In Proceedings of VLDB, pp.1435-1446, 2010.
  17. Chin-Hsien Wu, Tei-Wei Kuo, and Li Ping Chang, "An Efficient B-tree Layer Implementation for Flash-memory Storage Systems," ACM Transactions on Embedded Computing Systems, Vol.6, No.3, 2007.
  18. S. W. Park, H. J. Song, and D. H. Lee, "An Efficient Buffer Management Scheme for Implementing a B-Tree on NAND Flash Memory," In Proceedings of ICESS '07, 2007.
  19. Yinan Li, Bingsheng He, Robin J. Yang, Qiong Luo, and Ke Yi, "Tree Indexing on Solid State Derives," In Proceedings of VLDB, pp.1195-1206, 2010.
  20. S. C. Lim and M. H. Kim, "Restructuring the Concurrent B+-tree with Non-blocked Search Operations," Informaction Sciences, Vol.147, pp.123-142, 2002. https://doi.org/10.1016/S0020-0255(02)00261-X
  21. Chang Xu, Lidan Show, Gang Chen, Cheng Yan, and Tianlei Hu, "Update Migration: An Efficient B+-tree for Flash Storage," In Proc. of DASFAA, pp.276-290, 2010.
  22. Hua-Wei Fang, Mi-Yen Yeh, Pei-Lun Suei, and Tei-Wei Kuo, "An Adaptive Endurance-aware B+-tree for Flash Memory Storage Systems," IEEE Transactions on Computers, 2013.
  23. H. C. Roh, S. H. Park, S. H. Kim, M. C. Shin, and S. W. Lee, "B+-tree Index Optimization by Exploiting Internal Parallelism of Flash-based Solid State Drives," In Proc. of VLDB, pp.286-297, 2011.