This page details some performance measurements of RDF Gateway. All test were run on a Dell 4600 runing Windows 2000 Server with two 3 GHz Xeon processors, 4 GBytes of RAM, and 300 GBytes of hard-drive (RAID 5). RDF Gateway version 2.2 (pre-release) was used for the tests.
The following table details limitations in the tested version of RDF Gateway.
| Maximum disk table size | 2 Terabytes |
| Maximum number of individual URIs or Literal per disk table | 2 billion |
This test measured the time it takes to bulk load a quantity of triples into a disk-based RDF Gateway table. The table was created without context (meaning it could hold triples, not quads), with full-text indexing enabled, and with transaction logging disabled. The source for the load was a 255 MByte Ntriples file containing 2,069,663 triples.
The following script was used for the test:
Notes on test: data was datatype-intensive which slows import somewhat; use of quad table would decrease performance by ~50% and increase size approximately the same amount.
This test measured the time it takes to repeatedly query the properties of a single resource. It is intended to measure the overhead of a simple query. The query was run 10,000 times (sequentially) in order to find an average query duration. The table loaded in the previous test is used for the query (~2M triples).
The following script was used for the test:
This test measured the time it takes to repeatedly query for the subclasses of a particular class. A rulebase is included in the query that expresses the transitivity of the subclass relationship. The query was run 10,000 times (sequentially) in order to find an average query duration. The table loaded in the previous test is used for the query (~2M triples).
The following script was used for the test:
This test performs a query with a number of conditions that returns a large quantity of results. The results are limited to several different counts. The query was run 1000 times (sequentially) in order to find an average query duration. The table loaded in the previous test is used for the query (~2M triples).
The following script was used for the test:
Notes about test: there is 1 county matching first two conditions; there are 2097 areas matching first three conditions; there are 9536 lines matching first 4 conditions; there are 9671 features matching all conditions.
This test uses the Microsoft Web Application Stress Tool to access a page served by RDF Gateway via HTTP with a variable number of users. The page performs a single query shown below and returns the results as RDF/XML (simulating a simple web service). This is a test of both the HTTP interface and simultaneous access to the triplestore. The table loaded in the previous test is used for the query (~2M triples). The stress tool was run on a separate machine and connected to the test server via a 100Mbit ethernet network. Each test run was 60 seconds with a varied number of threads (simulating users).
The following script was used for the test:
Notes on test: There is an expected increase in requests per second when going from 1 to 2 thread (since the tested machine has 2 processors). Thereafter, the requests will be competing from processor time so there is some drop-off as the number of threads increases. Since the query is only acquiring a read lock, there is no database contention (either expected or evident).