Practical transparent persistence
Many enterprise applications persist data beyond their lifetimes, usually in a database management system. Orthogonal persistence provides a clean programming model for communicating with databases. A program using orthogonal persistence operates over persistent and non-persistent data uniformly. Ho...
Main Author: | |
---|---|
Format: | Others |
Language: | English |
Published: |
2011
|
Subjects: | |
Online Access: | http://hdl.handle.net/2152/10645 |
id |
ndltd-UTEXAS-oai-repositories.lib.utexas.edu-2152-10645 |
---|---|
record_format |
oai_dc |
spelling |
ndltd-UTEXAS-oai-repositories.lib.utexas.edu-2152-106452015-09-20T16:58:34ZPractical transparent persistenceIbrahim, Ali Hussein, 1980-Transparent persistenceAutoFetchData access patternsJava languageRemote Batch InvocationDistributed communicationMany enterprise applications persist data beyond their lifetimes, usually in a database management system. Orthogonal persistence provides a clean programming model for communicating with databases. A program using orthogonal persistence operates over persistent and non-persistent data uniformly. However, a straightforward implementation of orthogonal persistence results in a large number of small queries each of which incurs a large overhead when accessing a remote database. In addition, the program cannot take advantage of a database's query optimizations for large and complex queries. Instead, most programs compose smaller queries into a single large query explicitly and send the query to the database through a command-level interface. These explicit queries compromise the modularity of programs because they do not compose well and they contain information about the program's future data access patterns. Consequently, programs with explicit queries are harder to maintain and reason about. In this thesis, we first define transparent persistence, a relaxation of orthogonal persistence. We show how transparent persistence in current tools can be made more practical by developing AutoFetch. The key idea in AutoFetch is to dynamically observe a program's data access patterns and use that information to reduce the number of queries. While AutoFetch is constrained by existing Java technology and tools, Remote Batch Invocation (RBI) adds the batch statement to the Java language. The batch statement is a general purpose mechanism for optimizing distributed communication using batching. RBI-DB specializes the ideas in RBI for databases. Both of these ideas help bridge the performance gap between orthogonally persistent systems and traditional database interfaces.text2011-03-23T18:26:54Z2011-03-23T18:26:54Z2009-082011-03-23electronichttp://hdl.handle.net/2152/10645engCopyright is held by the author. Presentation of this material on the Libraries' web site by University Libraries, The University of Texas at Austin was made possible under a limited license grant from the author who has retained all copyrights in the works. |
collection |
NDLTD |
language |
English |
format |
Others
|
sources |
NDLTD |
topic |
Transparent persistence AutoFetch Data access patterns Java language Remote Batch Invocation Distributed communication |
spellingShingle |
Transparent persistence AutoFetch Data access patterns Java language Remote Batch Invocation Distributed communication Ibrahim, Ali Hussein, 1980- Practical transparent persistence |
description |
Many enterprise applications persist data beyond their lifetimes, usually in a database management system. Orthogonal persistence provides a clean programming model for communicating with databases. A program using orthogonal persistence operates over persistent and non-persistent data uniformly. However, a straightforward implementation of orthogonal persistence results in a large number of small queries each of which incurs a large overhead when accessing a remote database. In addition, the program cannot take advantage of a database's query optimizations for large and complex queries. Instead, most programs compose smaller queries into a single large query explicitly and send the query to the database through a command-level interface. These explicit queries compromise the modularity of programs because they do not compose well and they contain information about the program's future data access patterns. Consequently, programs with explicit queries are harder to maintain and reason about. In this thesis, we first define transparent persistence, a relaxation of orthogonal persistence. We show how transparent persistence in current tools can be made more practical by developing AutoFetch. The key idea in AutoFetch is to dynamically observe a program's data access patterns and use that information to reduce the number of queries. While AutoFetch is constrained by existing Java technology and tools, Remote Batch Invocation (RBI) adds the batch statement to the Java language. The batch statement is a general purpose mechanism for optimizing distributed communication using batching. RBI-DB specializes the ideas in RBI for databases. Both of these ideas help bridge the performance gap between orthogonally persistent systems and traditional database interfaces. === text |
author |
Ibrahim, Ali Hussein, 1980- |
author_facet |
Ibrahim, Ali Hussein, 1980- |
author_sort |
Ibrahim, Ali Hussein, 1980- |
title |
Practical transparent persistence |
title_short |
Practical transparent persistence |
title_full |
Practical transparent persistence |
title_fullStr |
Practical transparent persistence |
title_full_unstemmed |
Practical transparent persistence |
title_sort |
practical transparent persistence |
publishDate |
2011 |
url |
http://hdl.handle.net/2152/10645 |
work_keys_str_mv |
AT ibrahimalihussein1980 practicaltransparentpersistence |
_version_ |
1716821311934693376 |