P. Burte, B. Aleman-Meza, D. Brent Weatherly, Rong Wu University of Georgia May 06, 2006Repsented by :Mohamed Zeinelabdeen
• In traditional database systems rely on the disk subsystem to retrieve and update data and use an offline storage device such as magnetic tape for backup.• In this experiment, a main-memory database will use physical memory as primary storage and a disk subsystem for backup.• A Java object, class Transaction, encapsulates all operations that are accessible by a database transaction.
• The data set used for testing had 80 different extents. A total of 1,000 Transactions were run via 1,000 threads (one transaction per thread).• Each Transaction executed a fixed number of operations on each set of tests , each operation involves a single extent, which is chosen randomly from the 80 possibilities.• Each set of tests was run with different percentages of updates/queries.
The different percentages tested were: ◦ 0% updates, 100% queries . ◦ 20% updates, 80% queries. ◦ 40% updates, 60% queries. ◦ 60% updates, 40% queries. ◦ 80% updates, 20% queries. ◦ 98% updates, 2% queries . For each of these tests, the following information was recorded: ◦ time taken for completion of all the transactions. ◦ average number of times a transaction needed to wait for an extent used by other transaction. ◦ number of transactions aborted because of a detected Deadlock . Each of the tests was run several times to in order to obtain an average for each value.
Transaction performance is measured in two areas: the throughput for transaction completion. the average number of times a transaction goes to wait state because it is unable to obtain a lock on a resource.
Transaction throughput is measured by taking the total number of transactions attempted, subtracting the number of transactions that were aborted because of deadlock, and dividing by the time required to complete the test.
• For the set of tests executing only one operation per transaction, the number of wait-states increased slowly for percentages of updates under 60%.• For percentages of updates over 60%, the number of wait-states increased rapidly.• For the set of tests executing 1 to 5 operations per transaction, the number of wait-states increased with the percentage of updates increasing.
for deadlock detection, the test results were as expected. The number of aborted transactions because of a detected deadlock increases as the percentage of updates increases. no deadlock occurs if all transactions contain a single operation on a single extent.
From this experiment, Inferred performance tests show our implementation is promising an average throughput of two hundred and thirty transactions per second for a thousand single-operation transactions is a good start.