This thesis provides a benchmark to assess the performance of storing binary large objects in a relational database management system.A benchmark framework that reduces development and integration costs of benchmarking the database performance of a specific application is included.A randomly generated test script is utilized to provide variation among test cases and consistency between different runs of the benchmark.The benchmark is platform independent and can be extended to support any database vendor providing a Java data source for connectivity.The benchmark framework requires the implementation of one simulation class for each application benchmark.This significantly reduces the cost of benchmark development. Deciding which database system, operating system, or hardware configuration is best suited for the application is now feasible. Existing benchmarks do not provide any analysis of storing BLOBs within the database and are generally completed by the database or hardware vendor rather than the consumer.With the passage of the Utah Digital Signature Act of 1995 and the Federal Electronic Signature Act of 2000,more and more paper documents are being stored electronically. These digitized documents have "electronic signatures" attached to them that serve not only as unique identifiers but make them legally binding and enforceable as well.One obvious medium that is used to quickly access and store these electronic documents is the database. Many online and distributed systems require the efficient access of thousands of binary files such as music (the sample files streamed to potential customers), digital signatures, and other documents and videos that generally range in size from 10KB to SMB. The storage and retrieval of these items can be accomplished through a database system using a column type capable of storing binary data (commonly referred to as a "binary large object" or a BLOB). There are many existing database systems capable of storing BLOBs. Such systems' functionality, performance and cost vary greatly among vendors (with some costing as much as $25,000 for a single CPU license). The prohibitive cost often keeps some organizations from conducting full assessments of database systems for possible use in their operations, potentially causing a loss or revenue. Entities with limited resources need an affordable means of assessing or benchmarking their own database utilization. This thesis, first and foremost, provides a database benchmark for storing BLOBs in a database. Secondly, a database benchmark framework is provided with the example implementation being the BLOB database benchmark. By so doing:
Developers will finally have a database benchmark for the storage of small, medium and large BLOBs in a database.
Users will have a reliable and affordable means to benchmark their applications' database utilization on multiple database systems.
Users will be able to determine the performance of different accessible system configurations (hardware, database and operating systems).
Users will be able to get results reflecting the configuration capability of their organization. Running the benchmark locally will allow reliable replication of the benchmark without reading large disclosure documents provided with results from commercial benchmarks.
The software development community will now have a benchmark for storing BLOBs in a database. This benchmark will fill a void as most database benchmarks focus on OLTP (online transaction processing) that consist of very small records and none focus on the general storage of BLOBs.
CHAPTER 2 REVIEW OF LITERATURE-EXISTING DATABASE BENCHMARKS
My research indicates that no research has been done comparing the performance of database systems' ability to store BLOBs. Similar research regarding database performance (for datasets not including binary data) does exist and come from the following sources: the Transaction Processing Counsel (TPC) , Storage Performance Council