Problem Statement

In the prior work, we described the “internal fragmentation” problem of collection files and secondary index files in MongoDB. That data fragmentation can be solved by using boundary-based stream mapping. However, in complex data model such as Linkbench, boundary-based stream mapping is inadequate with a new type of data fragmentation named cross-region fragmentation.

To illustrate the cross-region fragmentation, we implemented boundary-based stream mapping in MongoDB and experiment it with Linkbench. Figure 1 are written patterns of collection files and secondary index files using blktrace. In Figure 1 (b) all bottom regions of collection files are mapped with stream 1 (red color). However, inside this stream, there are overlapped writes of files with different write frequency as shown in Figure 1 (d) (three different colors). We observed the same phenomenon in the case of the top regions.

Flash SSDs have many advantages over the existing hard disks such as energy efficiency, shock resistance, and high I/O throughput. For these reasons, in combination with the emergence of innovative technologies such as 3D-NAND and V-NAND for cheaper cost-per-byte, flash SSDs have been rapidly replacing hard disks in many areas. However, the existing database engines, which have been developed mainly assuming hard disks as the storage, could not fully exploit the characteristics of flash SSDs (e.g. internal parallelism). In this paper, in order to utilize the internal parallelism intrinsic to modern flash SSDs for faster query processing, we implemented a prefetching method using asynchronous input/output as a new functionality for secondary index scans in MySQL InnoDB engine. Compared to the original InnoDB engine, the proposed prefetching-based scan scheme shows three-fold higher performance in the case of 16KB-page sizes, and about 4.2-fold higher performance in the case of 4KB-page sizes

This is the first part of the research that has a paper published in EDB 2017 conference. The second part descibes about the extended research has an accepted paper in the Journal of Information Sciences and Engineering (JISE) – an SCIE journal.

Data fragmentation in ﬂash SSDs which is a common problem that leads to performance degradation, especially when the underlying storage devices become aged by heavily updating workloads. This paper addresses that problem in MongoDB, a popular document storage in the current market, by introducing a novel stream mapping scheme that based on unique characteristics of MongoDB. Empirical results showed that in YCSB and Linkbench, our methods improved the throughput by more than 44% and 43.73% respectively; reduced 99th-percentile latency by up to 29% and 24.67% in YCSB and Linkbench respectively. In addition, by tuning the leaf page size in B+Tree of MongoDB, we can signiﬁcantly improve the throughput by 3.37x and 2.14x in YCSB and Linkbench respectively.

NoSQL solutions become emerging for large scaled, high performance, schema-flexible applications. WiredTiger is cost effective, non-locking, no-overwrite storage used as default storage engine in MongoDB. Understanding I/O characteristics of storage engine is important not only for choosing suitable solution with an application but also opening opportunities for researchers optimizing current working system, especially building more flash-awareness NoSQL DBMS. This paper explores background of MongoDB internals then analyze I/O characteristics of WiredTiger storage engine in detail. We also exploit space management mechanism in WiredTiger by using TRIM command.
MongoDB_Trim_edb2016.pdf (59 downloads)

A novel approach to DBMS design called In-Page Logging (IPL) was proposed a decade ago. The IPL system exploits characteristic of flash memory; asymmetric write/read speed. This approach manages per page log in erase unit of flash memory and avoids page write but saves redo log. When the page is required merge operation, which is instant recovery process, generates updated version of page using old page and its redo log. In fact this never has been implemented to real DBMS system since lack of fast, persistent, byte-addressable, and affordable device. Since NVDIMM matches with concept of IPL, we implemented IPL to PostgreSQL, a commercial open source DBMS, employing it as IPL log device.
IPLization in PostgreSQL (148 downloads)

To make SQLite more truly lite in terms of IO efficiency for the transactional support, we propose SQLite/SSL, a per-transaction SQL statement logging scheme : when a transaction commits, SQLite/SSL ensures its durability by storing SQL statements of small size, thus writing less and performing faster at no compromise of transactional solidity. This paper will be published at VLDB 2018

FaCE is a new low-overhead caching strategy that uses flash memory as an extension to the RAM buffer of database systems. FaCE aims at improving the transaction throughput as well as shortening the recovery time from a system failure. In the paper, author has implemented the FaCE scheme in the PostgreSQL 8.4 database server. But we implemented the FaCE scheme in the MySQL 5.6.26.
FaCE paper (VLDB) (219 downloads)

Database consistency and recoverability require guaranteeing write atomicity for one or more pages. However, contemporary database systems consider write operations nonatomic. Thus, many database storage engines have traditionally relied on either journaling or copy-on-write approaches for atomic propagation of updated pages to the storage. This reliance achieves write atomicity at the cost of various write amplifications such as redundant writes, treewandering, and compaction. This write amplification results in reduced performance and, for flash storage, accelerates device wear-out.
SHARE paper (245 downloads)

Given its pervasive use in smart mobile platforms, there is a compelling need to optimize the performance of sluggish SQLite databases. Popular mobile applications such as messenger, email and social network services rely on SQLite for their data management need. Those mobile applications tend to execute relatively short transactions in the autocommit mode for transactional consistency in databases.
SQLite-PPL Paper (229 downloads)