Vertical partitioning algorithms for database design
ACM Transactions on Database Systems (TODS)
Vertical partitioning for database design: a graphical algorithm
SIGMOD '89 Proceedings of the 1989 ACM SIGMOD international conference on Management of data
An Effective Approach to Vertical Partitioning for Physical Design of Relational Databases
IEEE Transactions on Software Engineering
The design and implementation of a log-structured file system
ACM Transactions on Computer Systems (TOCS)
A modeling study of the TPC-C benchmark
SIGMOD '93 Proceedings of the 1993 ACM SIGMOD international conference on Management of data
eNVy: a non-volatile, main memory storage system
ASPLOS VI Proceedings of the sixth international conference on Architectural support for programming languages and operating systems
Vertical partitioning in database design
Information Sciences—Informatics and Computer Science: An International Journal
SIGMOD '85 Proceedings of the 1985 ACM SIGMOD international conference on Management of data
PicoDMBS: Scaling Down Database Techniques for the Smartcard
VLDB '00 Proceedings of the 26th International Conference on Very Large Data Bases
AutoPart: Automating Schema Design for Large Scientific Databases Using Data Partitioning
SSDBM '04 Proceedings of the 16th International Conference on Scientific and Statistical Database Management
Integrating vertical and horizontal partitioning into automated physical database design
SIGMOD '04 Proceedings of the 2004 ACM SIGMOD international conference on Management of data
Energy-aware demand paging on NAND flash-based embedded storages
Proceedings of the 2004 international symposium on Low power electronics and design
Efficient Data Management on Lightweight Computing Devices
ICDE '05 Proceedings of the 21st International Conference on Data Engineering
C-store: a column-oriented DBMS
VLDB '05 Proceedings of the 31st international conference on Very large data bases
Integrating compression and execution in column-oriented database systems
Proceedings of the 2006 ACM SIGMOD international conference on Management of data
Performance tradeoffs in read-optimized databases
VLDB '06 Proceedings of the 32nd international conference on Very large data bases
LGeDBMS: a small DBMS for embedded system with flash memory
VLDB '06 Proceedings of the 32nd international conference on Very large data bases
CFLRU: a replacement algorithm for flash memory
CASES '06 Proceedings of the 2006 international conference on Compilers, architecture and synthesis for embedded systems
Design of flash-based DBMS: an in-page logging approach
Proceedings of the 2007 ACM SIGMOD international conference on Management of data
A flash-memory based file system
TCON'95 Proceedings of the USENIX 1995 Technical Conference Proceedings
A log buffer-based flash translation layer using fully-associative sector translation
ACM Transactions on Embedded Computing Systems (TECS)
VLDB '02 Proceedings of the 28th international conference on Very Large Data Bases
A space-efficient flash translation layer for CompactFlash systems
IEEE Transactions on Consumer Electronics
FAB: flash-aware buffer management policy for portable media players
IEEE Transactions on Consumer Electronics
Vertical partitioning for flash and HDD database systems
Journal of Systems and Software
Architectures and optimization methods of flash memory based storage systems
Journal of Systems Architecture: the EUROMICRO Journal
An efficient B+-tree design for main-memory database systems with strong access locality
Information Sciences: an International Journal
Hi-index | 0.07 |
The growing storage capacity of flash memory (up to 640GB) and the proliferation of small mobile devices such as PDAs and mobile phones makes it attractive to build database management systems (DBMSs) on top of flash memory. However, most existing DBMSs are designed to run on hard disk drives. The unique characteristics of flash memory make the direct application of these existing DBMSs to flash memory very energy inefficient and slow. The relatively few DBMSs that are designed for flash suffer from two major short-comings. First, they do not take full advantage of the fact that updates to tuples usually only involve a small percentage of the attributes. A tuple refers to a row of a table in a database. Second, they do not cater for the asymmetry of write versus read costs of flash memory when designing the buffer replacement algorithm. In this paper, we have developed algorithms that address both of these short-comings. We overcome the first short-coming by partitioning tables into columns and then group the columns based on which columns are read or updated together. To this end, we developed an algorithm that uses a cost-based approach, which produces optimal column groupings for a given workload. We also propose a heuristic solution to the partitioning problem. The second short-coming is overcome by the design of the buffer replacement algorithm that automatically determines which page to evict from buffer based on a cost model that minimizes the expected read and write energy usage. Experiments using the TPC-C benchmark [S.T. Leutenegger, D. Dias, A modeling study of the TPC-C benchmark, in: Proceedings of ACM SIGMOD, 1993, pp. 22-31] show that our approach produces up to 40-fold in energy usage savings compared to the state-of-the-art in-page logging approach.