Gi-Hwan Oh

dblp:87/11411 · also Gihwan Oh · DBLP profile ↗
← Back
10ranked-venue papers
3as first author
2since 2021 · last 2023
0000-0002-3335-2841ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Databases, data management, data science and information retrieval · 8 · 3 first-author · 2 since 2021Systems, architecture and hardware · 2

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Computer architecture, parallel and distributed computing, and storage systems
8 papers
Storage systems · 86% Memory systems · 14%
Databases, data mining, and information retrieval
6 papers
Transaction processing and concurrency control · 40% Database system architecture and tuning · 33% Query processing and optimization · 19%

Topics — the 20 heaviest of 22, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Storage systems
flash and SSD
2.152023
FlashAlloc: Dedicating Flash Blocks By Objects · Proc. VLDB Endow. 2023
SaS: SSD as SQL Database System · Proc. VLDB Endow. 2021
2R: Efficiently Isolating Cold Pages in Flash Storages · Proc. VLDB Endow. 2020
Storage systems › flash and SSD › flash memory management › garbage collection
write amplification
0.722023
FlashAlloc: Dedicating Flash Blocks By Objects · Proc. VLDB Endow. 2023
SQL Statement Logging for Making SQLite Truly Lite · Proc. VLDB Endow. 2017
Memory systems
non-volatile memory
0.522017
SQL Statement Logging for Making SQLite Truly Lite · Proc. VLDB Endow. 2017
SQLite Optimization with Phase Change Memory for Mobile Applications · Proc. VLDB Endow. 2015
Storage systems
computational storage
0.512021
SaS: SSD as SQL Database System · Proc. VLDB Endow. 2021
Storage systems › flash and SSD
flash memory management
0.412020
2R: Efficiently Isolating Cold Pages in Flash Storages · Proc. VLDB Endow. 2020
Storage systems › flash and SSD › flash memory
flash storage
0.412020
2R: Efficiently Isolating Cold Pages in Flash Storages · Proc. VLDB Endow. 2020
Transaction processing and concurrency control
logging
0.312017
SQL Statement Logging for Making SQLite Truly Lite · Proc. VLDB Endow. 2017
Transaction processing and concurrency control
atomicity
0.212016
SHARE Interface in Flash Storage for Relational and NoSQL Databases · SIGMOD Conference 2016
Storage systems
atomic writes
0.212016
SHARE Interface in Flash Storage for Relational and NoSQL Databases · SIGMOD Conference 2016
Storage systems
storage reliability
0.212016
SHARE Interface in Flash Storage for Relational and NoSQL Databases · SIGMOD Conference 2016
Memory systems › non-volatile memory
phase change memory
0.212015
SQLite Optimization with Phase Change Memory for Mobile Applications · Proc. VLDB Endow. 2015
Storage systems › flash and SSD
write amplification reduction
0.212015
SQLite Optimization with Phase Change Memory for Mobile Applications · Proc. VLDB Endow. 2015
Storage systems › flash and SSD › flash memory management
flash translation layer
0.212013
X-FTL: transactional FTL for SQLite databases · SIGMOD Conference 2013
Query processing and optimization › join processing › join algorithms
hash join
0.112012
Reducing cache misses in hash join probing phase by pre-sorting strategy (abstract only) · SIGMOD Conference 2012
Query processing and optimization
join processing
0.112012
Reducing cache misses in hash join probing phase by pre-sorting strategy (abstract only) · SIGMOD Conference 2012
Storage systems › data management
mobile DBMS
0.112017
SQL Statement Logging for Making SQLite Truly Lite · Proc. VLDB Endow. 2017
Indexing and storage engines › storage management
storage engine
0.112016
SHARE Interface in Flash Storage for Relational and NoSQL Databases · SIGMOD Conference 2016
Transaction processing and concurrency control › transaction models
mobile transactions
0.112015
SQLite Optimization with Phase Change Memory for Mobile Applications · Proc. VLDB Endow. 2015
Memory systems
cache
0.012012
Reducing cache misses in hash join probing phase by pre-sorting strategy (abstract only) · SIGMOD Conference 2012
Memory systems › cache
cache miss reduction
0.012012
Reducing cache misses in hash join probing phase by pre-sorting strategy (abstract only) · SIGMOD Conference 2012

Methods — techniques the papers use, named apart from their topics

redo-only recovery · 0.6logical logging · 0.6WAL checkpointing · 0.6per-page logging · 0.4transactional atomicity · 0.3journaling · 0.3alphasort · 0.3presorting · 0.1pre-sorting · 0.1
YearPublicationVenuePosition
2023 FlashAlloc: Dedicating Flash Blocks By Objects
abstract
For a write request, today's flash storage cannot distinguish the logical object it comes from ( e.g. , SSTables in RocksDB). In such object-oblivious flash devices, concurrent writes from different objects are simply packed in their arrival order to flash memory blocks; hence data pages from multiple objects with different lifetimes are multiplexed onto the same flash blocks. This multiplexing incurs write amplification, worsening the performance. Tackling the multiplexing problem, we propose a novel interface for flash storage, FlashAlloc. It is used to pass the logical address ranges of objects to the underlying flash device and thus to enlighten the device to stream writes by objects. The object-aware flash storage can now de-multiplex concurrent writes from multiple objects with distinct deathtimes into per-object dedicated flash blocks. In essence, the interface enables the per-object fine-grained write streaming. Given that popular data stores tend to separate writes by logical objects, we can achieve, compared to the existing solutions, transparent streaming just by calling FlashAlloc upon object creation. Also, FlashAlloc is adaptive to workload changes, and liberates the stream conflicts in the multi-tenant environment. Our experimental results using an open-source SSD prototype demonstrate that FlashAlloc can reduce the device-level write amplification factor (WAF) under RocksDB, F2FS, and MySQL by 1.5, 2.5, and 0.3, respectively and improve their throughput by 2.7x, 1.8x, and 1.2x, respectively. Also, FlashAlloc can mitigate the WAF interference among tenants: when running RocksDB and MySQL together on the same SSD, FlashAlloc reduced WAF from 2.5 to 1.6 and doubled their throughputs.
Soyee Choi, Gi-Hwan Oh, Soojun Im, Moonwook Oh, Sang-Won Lee 0001
Proc. VLDB Endow.3
2021 SaS: SSD as SQL Database System
abstract
Every database engine runs on top of an operating system in the host, strictly separated with the storage. This more-than-half-century-old IHDE (In-Host-Database-Engine) architecture, however, reveals its limitations when run on fast flash memory SSDs. In particular, the IO stacks incur significant run-time overhead and also hinder vertical optimizations between database engines and SSDs. In this paper, we envisage a new database architecture, called SaS (SSD as SQL database engine), where a full-blown SQL database engine runs inside SSD, tightly integrated with SSD architecture without intervening kernel stacks. As IO stacks are removed, SaS is free from their run-time overhead and further can explore numerous vertical optimizations between database engine and SSD. SaS evolves SSD from dummy block device to database server with SQL as its primary interface. The benefit of SaS will be more outstanding in the data centers where the distance between database engine and the storage is ever widening because of virtualization, storage disaggregation, and open software stacks. The advent of computational SSDs with more compute resource will enable SaS to be more viable and attractive database architecture.
Soyee Choi, Gi-Hwan Oh, Sang-Won Lee 0001
Proc. VLDB Endow.3
2020 2R: Efficiently Isolating Cold Pages in Flash Storages
Minji Kang, Soyee Choi, Gi-Hwan Oh, Sang-Won Lee 0001
Proc. VLDB Endow.3
2018 When Address Remapping Techniques Meet Consistency Guarantee Mechanisms
Gi-Hwan Oh, Dongki Kim, In Hwan Doh, Changwoo Min, Sang-Won Lee 0001, Young Ik Eom
HotStorage2
2017 SQL Statement Logging for Making SQLite Truly Lite
abstract
The lightweight codebase of SQLite was helpful in making it become the de-facto standard database in most mobile devices, but, at the same time, forced it to take less-complicated transactional schemes, such as physical page logging, journaling, and force commit, which in turn cause excessive write amplification. Thus, the write IO cost in SQLite is not lightweight at all. In this paper, to make SQLite 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 only SQL statements of small size, thus writing less and performing faster at no compromise of transactional solidity. Our main contribution is to show that, based on the observation that mobile transactions tend to be short and exhibit strong update locality , logical logging can, though long discarded, become an elegant and perfect fit for SQLite-based mobile applications. Further, we leverage the WAL journal mode in vanilla SQLite as a transaction-consistent checkpoint mechanism which is indispensable in any logical logging scheme. In addition, we show for the first time that byte-addressable NVM (non-volatile memory) in host-side can realize the full potential of logical logging because it allows to store fine-grained logs quickly. We have prototyped SQLite/SSL by augmenting vanilla SQLite with a transaction-consistent checkpoint mechanism and a redo-only recovery logic, and have evaluated its performance using a set of synthetic and real workloads. When a real NVM board is used as its log device, SQLite/SSL can outperform vanilla SQLite's WAL mode by up to 300x and also outperform the state-of-the-arts SQLite/PPL scheme by several folds in terms of IO time.
Gi-Hwan Oh, Sang-Won Lee 0001
Proc. VLDB Endow.2
2016 SHARE Interface in Flash Storage for Relational and NoSQL Databases
abstract
Database consistency and recoverability require guaranteeing write atomicity for one or more pages. However, contemporary database systems consider write operations non-atomic. 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, tree-wandering, and compaction. This write amplification results in reduced performance and, for flash storage, accelerates device wear-out. In this paper, we propose a flash storage interface, SHARE. Being able to explicitly remap the address mapping inside flash storage using SHARE interface enables host-side database storage engines to achieve write atomicity without causing write amplification. We have implemented SHARE on a real SSD board, OpenSSD, and modified MySQL/InnoDB and Couchbase NoSQL storage engines to make them compatible with the extended SHARE interface. Our experimental results show that this SHARE-based MySQL/InnoDB and Couchbase configurations can significantly boost database performance. In particular, the inevitable and costly Couchbase compaction process can complete without copying any data pages.
Gi-Hwan Oh, Chiyoung Seo, Ravi Mayuram, Yang-Suk Kee, Sang-Won Lee 0001
SIGMOD Conference1
2015 SQLite Optimization with Phase Change Memory for Mobile Applications
abstract
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. This often has adverse effect on the flash memory storage in mobile devices because the small random updates cause high write amplification and high write latency. In order to address this problem, we propose a new optimization strategy, called per-page logging (PPL) , for mobile data management, and have implemented the key functions in SQLite/PPL. The hardware component of SQLite/PPL includes phase change memory (PCM) with a byte-addressable, persistent memory abstraction. By capturing an update in a physiological log record and adding it to the PCM log sector, SQLite/PPL can replace a multitude of successive page writes made to the same logical page with much smaller log writes done to PCM much more efficiently. We have observed that SQLite/PPL would potentially improve the performance of mobile applications by an order of magnitude while supporting transactional atomicity and durability.
Gi-Hwan Oh, Sangchul Kim, Sang-Won Lee 0001, Bongki Moon
Proc. VLDB Endow.1
2013 Hardware-Assisted Intrusion Detection by Preserving Reference Information Integrity
Junghee Lee 0004, Chrysostomos Nicopoulos, Gi-Hwan Oh, Sang-Won Lee 0001, Jongman Kim
ICA3PP (1)3
2013 X-FTL: transactional FTL for SQLite databases
abstract
In the era of smartphones and mobile computing, many popular applications such as Facebook, twitter, Gmail, and even Angry birds game manage their data using SQLite. This is mainly due to the development productivity and solid transactional support. For transactional atomicity, however, SQLite relies on less sophisticated but costlier page-oriented journaling mechanisms. Hence, this is often cited as the main cause of tardy responses in mobile applications.
Woon-Hak Kang, Sang-Won Lee 0001, Bongki Moon, Gi-Hwan Oh, Changwoo Min
SIGMOD Conference4
2012 Reducing cache misses in hash join probing phase by pre-sorting strategy (abstract only)
abstract
Recently, several studies on multi-core cache-aware hash join have been carried out [Kim09VLDB, Blanas11SIGMOD]. In particular, the work of Blanas has shown that rather simple no-partitioning hash join can outperform the work of Kim. Meanwhile, the simple but best performing hash join of Blanas still experiences severe cache misses in probing phase. Because the key values of tuples in outer relation are not sorted or clustered, each outer record has different hashed key value and thus accesses the different hash bucket. Since the size of hash table of inner table is usually much larger than that of the CPU cache, it is highly probable that the reference to hash bucket of inner table by each outer record would encounter cache miss. To reduce the cache misses in hash join probing phase, we propose a new join algorithm, Sorted Probing (in short, SP), which pre-sorts the hashed key values of outer table of hash join so that the access to the hash bucket of inner table has strong temporal locality, thus minimizing the cache misses during the probing phase. As an optimization technique of sorting, we used the cache-aware AlphaSort technique, which extracts the key from each record of data set to be sorted and its pointer, and then sorts the pairs of (key, rec_ptr). For performance evaluation, we used two hash join algorithms from Blanas' work, no partitioning(NP) and independent partitioning(IP) in a standard C++ program, provided by Blanas. Also, we implemented the AlphaSort and added it before each probing phase of NP and IP, and we call each algorithm as NP+SP and IP+SP. For syntactic workload, IP+SP outperforms all other algorithms: IP+SP is faster than other altorithms up to 30%.
Gi-Hwan Oh, Jae-Myung Kim, Woon-Hak Kang, Sang-Won Lee 0001
SIGMOD Conference1