## 6 Conclusions  
It may lead performance degradation to apply the original B-tree on the flash storage device without any changes because NAND flash memory has the characteristic that it has to perform slow block erasures before overwriting data on a prewritten page. Therefore, various techniques have been proposed for improving the performance of B-tree on flash memory. Generally, these flash-aware B-tree index structures are classified into two groups. The key idea of the first group is to employ the memory buffer to improve the write throughput. The main advantage of this approach is much faster than the other group for read and write performance. However, they suffer from the high cost of maintaining the memory buffer and the risk of data loss in case of sudden power failure. On the other hand, the second group has B-tree variants that modify B-tree's node structure to avoid in-place updates. The main advantage of this approach is more reliable than B-trees in the first group. They also have additional advantage that they just use small memory resources. However, the main disadvantage of B-trees in the second group is that their write performance is generally much lower than that of the first group. The design goal of CB-tree is to improve the sequential write performance and also maintain reliability as do B-trees in the second group. As shown in various experiments, CB-tree achieves the goal by employing cascade memory nodes. CB-tree improves the write throughput by delaying the write of updated nodes into the flash memory. In particular, when records are sequentially inserted in continuous key order, it enhanced the page utilization of the leaf node by using the entire space of the page as a leaf node and reduced additional write operations by not splitting leaf nodes. Through mathematical analysis as well as various experiments, we have also shown that CB-tree always yields better performance compared to the related. To sum up, in the creation time and search time with real traces, CB-tree outperforms the buffer-based B-trees by up to about 35%. Also, CB-tree performing the log writing creates the index structure 22.6-41.8% faster than the structure-modified B-trees. CB-tree also has the space overhead because it employs additional memory nodes that are so-called cascade memory nodes for improving the performance. However, in order to minimize the space overhead of cascade memory nodes, CB-tree does not assign the memory space in advance but dynamically allocates it by the entry unit for cascade memory nodes. The current version of CB-tree employs a rather simple recovery mechanism for sudden power failure as mentioned in Section 3.5. However, to maintain a high reliability on CB-tree, it needs a more elaborate algorithm for power-off recovery at various granularity levels. Therefore, as our future work, we are currently studying to efficiently manage logs into the flash memory at various granularity levels for power-off recovery. \begin{table}
\begin{tabular}{c c c c c c} \hline \hline
**Ration** & **Wandering Tree** & **dIPL B+-Tree** & \(\mu^{*}\)**-Tree** & **LSB-Tree** & **CB-Tree** \\ \hline
0\% & 794 & 1574 & 1665 & 400 & 398 \\
50\% & 691 & 1720 & 2054 & 469 & 493 \\
100\% & 563 & 1834 & 2219 & 563 & 566 \\ \hline \hline \end{tabular}
\end{table} 
Table 6: The number of allocated pages on the flash memory  
**Author Contributions:** Conceptualization, D.H.L. and B.-K.K. ; methodology, B.-K.K. ; software, B.-K.K. ; validation, B.-K.K., G-W.K., and D.H.L. ; formal analysis, B.-K.K. and D.-H.L. ; investigation, G.-W.K. ; resources, D.H.L. ; data curation, B.-K.K. ; writing--original draft preparation, B.-K.K. ; writing--review and editing, G.-W.K. and D.H.L. ; visualization, B.-K.K. ; supervision, D.H.L. ; project administration, D.H.L. ; funding acquisition, D.H.L. All authors have read and agreed to the published version of the manuscript.