Show simple item record

dc.contributor.advisorReddy, A.L. Narasimha
dc.creatorSambasivan Ramachandran, Shyam
dc.date.accessioned2013-12-16T20:13:19Z
dc.date.available2013-12-16T20:13:19Z
dc.date.created2013-08
dc.date.issued2013-07-29
dc.date.submittedAugust 2013
dc.identifier.urihttps://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.en
dc.format.mimetypeapplication/pdf
dc.language.isoen
dc.subjectAndroiden
dc.subjectLinuxen
dc.subjectSQLiteen
dc.subjectDatabaseen
dc.subjectLockingen
dc.subjectConcurrencyen
dc.subjectBenchmarken
dc.subjectwrite-ahead logen
dc.subjectflash driveen
dc.subjectSSDen
dc.subjectdisk driveen
dc.subjectMobile OSen
dc.titleEnhancements to SQLite Library to Improve Performance on Mobile Platformsen
dc.typeThesisen
thesis.degree.departmentElectrical and Computer Engineeringen
thesis.degree.disciplineComputer Engineeringen
thesis.degree.grantorTexas A & M Universityen
thesis.degree.nameMaster of Scienceen
thesis.degree.levelMastersen
dc.contributor.committeeMemberBettati, Riccardo
dc.contributor.committeeMemberGratz, Paul V
dc.type.materialtexten
dc.date.updated2013-12-16T20:13:19Z


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record