2009.07.26
Karl Gustafsson
Unit tests
64 bit Linux
32 bit Linux
64 bit Solaris 10
Mac OS X
64 bit Windows Vista
32 bit Windows Vista
Performance tests
Compare graphs
Unit tests were run as described in the Programmer's guide.
JVM | Results |
Sun JDK 1.5.0_19 (64 bit) | OK, 11/11 |
Sun JDK 1.6.0_14 (64 bit) | OK, 12/12 |
IBM J9 JVM build 2.3 1.5.0 SR9-SSU (64 bit) | OK, 11/11 |
IBM J9 JVM build 2.4 1.6.0 SR5 (64 bit) | OK, 12/12 |
OpenJDK 6b14-1.4.1-0ubuntu10 (64 bit) | OK, 12/12 |
JVM | Results |
Sun JDK 1.5.0_19 | OK, 11/11 |
Sun JDK 1.6.0_14 | OK, 12/12 |
IBM J9 JVM build 2.3 1.5.0 SR9-SSU | OK, 11/11 |
IBM J9 JVM build 2.4 1.6.0 SR5 | OK, 12/12 |
OpenJDK 6b14-1.4.1-0ubuntu10 | OK, 12/12 |
JVM | Results |
Sun JDK 1.5.0_19 (64 bit) | OK, 11/11 |
Sun JDK 1.6.0_14 (64 bit) | OK, 12/12 |
JVM | Results |
Apple JDK 1.5.0_19_b02-304 (64 bit) | OK, 11/11 |
Apple JDK 1.6.0_13_b03-211 (64 bit) | OK, 12/12 |
JVM | Results |
Sun JDK 1.5.0_19 (64 bit) | OK, 11/11 |
Sun JDK 1.6.0_14 (64 bit) | OK, 12/12 |
JVM | Results |
Sun JDK 1.5.0_19 | OK, 11/11 |
Sun JDK 1.6.0_14 | OK, 12/12 |
Performance tests were run as described in the Programmer's
guide. The tests suite contains the following tests, run for n
databases in each suite:
x
records in an empty database using Database.insert. Commit.x
records from the database using Database.get.x
keys using Database.keyIterator.x
records using Database.iterator.y
additional records using Database.insert. Commit.y
additional records using Database.update. Commit.y
additional records using Database.delete. Commit.x
records using Database.update. Commit.x
/3 records (every 3rd record) using Database.delete. Commit.The tests were run for the following configurations:
# | Database | DatabaseBackend | Additional settings |
1 | SimpleDatabase | ConstantRecordSizeHeapBackend | |
2 | SimpleDatabase | BPlusTreeIndexBackend and ConstantRecordSizeHeapBackend | B+ Tree node size: 4096 bytes |
3 | SimpleDatabase | BPlusTreeIndexBackend and ConstantRecordSizeHeapBackend | B+ Tree node size: 4096 bytes, node cache: 30 nodes |
4 | SimpleDatabase | ConstantRecordSizeBPlusTreeBackend | B+ Tree node size: 4096 bytes |
5 | SimpleDatabase | ConstantRecordSizeBPlusTreeBackend | B+ Tree node size: 4096 bytes, node cache: 10 nodes |
6 | SimpleDatabase | ConstantRecordSizeBPlusTreeBackend | B+ Tree node size: 4096 bytes, node cache: 30 nodes |
7 | SimpleDatabase | ConstantRecordSizeBPlusTreeBackend | B+ Tree node size: 4096 bytes, node cache: 50 nodes |
8 | SimpleDatabase | HeapBackend | |
9 | SimpleDatabase | BPlusTreeIndexBackend and HeapBackend | B+ Tree node size: 4096 bytes |
10 | SimpleDatabase | BPlusTreeIndexBackend and HeapBackend | B+ Tree node size: 4096 bytes, node cache: 30 nodes |
11 | LoggingTransactionalDatabase | ConstantRecordSizeHeapBackend | |
12 | LoggingTransactionalDatabase | BPlusTreeIndexBackend and ConstantRecordSizeHeapBackend | B+ Tree node size: 4096 bytes |
13 | LoggingTransactionalDatabase | BPlusTreeIndexBackend and ConstantRecordSizeHeapBackend | B+ Tree node size: 4096 bytes, node cache: 30 nodes |
14 | LoggingTransactionalDatabase | ConstantRecordSizeBPlusTreeBackend | B+ Tree node size: 4096 bytes |
15 | LoggingTransactionalDatabase | ConstantRecordSizeBPlusTreeBackend | B+ Tree node size: 4096 bytes, node cache: 30 nodes |
16 | LoggingTransactionalDatabase | HeapBackend | |
17 | LoggingTransactionalDatabase | BPlusTreeIndexBackend and HeapBackend | B+ Tree node size: 4096 bytes |
18 | LoggingTransactionalDatabase | BPlusTreeIndexBackend and HeapBackend | B+ Tree node size: 4096 bytes, node cache: 30 nodes |
19 | ShadowCopyTransactionalDatabase | ConstantRecordSizeHeapBackend | |
20 | ShadowCopyTransactionalDatabase | BPlusTreeIndexBackend and ConstantRecordSizeHeapBackend | B+ Tree node size: 4096 bytes |
21 | ShadowCopyTransactionalDatabase | BPlusTreeIndexBackend and ConstantRecordSizeHeapBackend | B+ Tree node size: 4096 bytes, node cache: 30 nodes |
22 | ShadowCopyTransactionalDatabase | ConstantRecordSizeBPlusTreeBackend | B+ Tree node size: 4096 bytes |
23 | ShadowCopyTransactionalDatabase | ConstantRecordSizeBPlusTreeBackend | B+ Tree node size: 4096 bytes, node cache: 30 nodes |
24 | ShadowCopyTransactionalDatabase | HeapBackend | |
25 | ShadowCopyTransactionalDatabase | BPlusTreeIndexBackend and HeapBackend | B+ Tree node size: 4096 bytes |
26 | ShadowCopyTransactionalDatabase | BPlusTreeIndexBackend and HeapBackend | B+ Tree node size: 4096 bytes, node cache: 30 nodes |
The tests for each database configuration were run with the following values
for n
, x
and y
, with different maximum
y
values for different test suites.
n | x | y |
500 | 0 | 5 |
500 | 10 | 5 |
500 | 50 | 5 |
200 | 100 | 5 |
100 | 500 | 10 |
100 | 1,000 | 10 |
20 | 5,000 | 50 |
10 | 10,000 | 50 |
1 | 50,000 | 100 |
1 | 100,000 | 100 |
1 | 500,000 | 100 |
1 | 1,000,000 | 100 |
1 | 5,000,000 | 100 |
The tests with constant record size backends were run with Integer keys and Long values. The tests with variable record size backends were run with String keys and values varying randomly between 4 and 20 characters in size. (All test data is generated before the tests are run.)
The test were run on JDK 1.6.0_14 on a 64 bit Linux.
B+ Tree node size = 4096 bytes, no LRU node cache
B+ Tree node size = 4096 bytes, LRU node cache = 30 nodes
B+ Tree node size = 4096 bytes, no LRU node cache
B+ Tree node size = 4096 bytes, LRU node cache = 10 nodes
B+ Tree node size = 4096 bytes, LRU node cache = 30 nodes
B+ Tree node size = 4096 bytes, LRU node cache = 50 nodes
B+ Tree node size = 4096 bytes, no LRU node cache
B+ Tree node size = 4096 bytes, LRU node cache = 30 nodes
B+ Tree node size = 4096 bytes, no LRU node cache
B+ Tree node size = 4096 bytes, LRU node cache = 30 nodes
B+ Tree node size = 4096 bytes, no LRU node cache
B+ Tree node size = 4096 bytes, LRU node cache = 30 nodes
B+ Tree node size = 4096 bytes, no LRU node cache
B+ Tree node size = 4096 bytes, LRU node cache = 30 nodes
B+ Tree node size = 4096 bytes, no LRU node cache
B+ Tree node size = 4096 bytes, LRU node cache = 30 nodes
B+ Tree node size = 4096 bytes, no LRU node cache
B+ Tree node size = 4096 bytes, LRU node cache = 30 nodes
B+ Tree node size = 4096 bytes, no LRU node cache
B+ Tree node size = 4096 bytes, LRU node cache = 30 nodes
[Linear axes] [Logarithmic x-axis] [Logarithmic y-axis] [Logarithmic x- and y-axes] |
[Linear axes] [Logarithmic x-axis] [Logarithmic y-axis] [Logarithmic x- and y-axes] |