Show simple item record

dc.contributorReddy, A.L. Narasimha
dc.creatorSambasivan Ramachandran, Shyam
dc.date.accessioned2013-12-16T20:13:19Z
dc.date.accessioned2017-04-07T20:06:24Z
dc.date.available2013-12-16T20:13:19Z
dc.date.available2017-04-07T20:06:24Z
dc.date.created2013-08
dc.date.issued2013-07-29
dc.identifier.urihttp://hdl.handle.net/1969.1/151314
dc.description.abstractThis thesis aims to present solutions to improve the performance of SQLite library on mobile systems. In particular, two approaches are presented to add lightweight locking mechanisms to the SQLite library and improve concurrency of the SQLite library on Android operating system. The impact on performance is discussed after each section. Many applications on the Android operating system rely on the SQLite library to store ordered data. However, due to heavy synchronization primitives used by the library, it becomes a performance bottleneck for applications which push large amount of data into the database. Related work in this area also points to SQLite database as one of the factors for limiting performance. With increasing network speeds, the storage system can become a performance bottleneck, as applications download larger amounts of data. The following work in this thesis addresses these issues by providing approaches to increase concurrency and add light-weight locking mechanisms. The factors determining the performance of Application Programming Interfaces provided by SQLite are first gathered from IO traces of common database operations. By analyzing these traces, opportunities for improvements are noticed. An alternative locking mechanism is added to the database file using byte-range locks for fine-grained locking. Its impact on performance is measured using SQLite benchmarks as well as real applications. A multi-threaded benchmark is designed to measure the performance of fine grained locking in multi-threaded applications using common database operations. Recent versions of SQLite use write ahead logs for journaling. We see that writes to this sequential log can occur concurrently, especially in flash drives. By adding a sequencing mechanism for the write ahead log, the writes can proceed simultaneously. The performance of this method is also analyzed using the synthetic benchmarks and multi-threaded benchmarks. By using these mechanisms, the library is observed to gain significant performance for concurrent writes.
dc.language.isoen
dc.subjectAndroid
dc.subjectLinux
dc.subjectSQLite
dc.subjectDatabase
dc.subjectLocking
dc.subjectConcurrency
dc.subjectBenchmark
dc.subjectwrite-ahead log
dc.subjectflash drive
dc.subjectSSD
dc.subjectdisk drive
dc.subjectMobile OS
dc.titleEnhancements to SQLite Library to Improve Performance on Mobile Platforms
dc.typeThesis


Files in this item

FilesSizeFormatView

There are no files associated with this item.

This item appears in the following Collection(s)

Show simple item record