The following instructions will let you run the LUBM benchmark against an embedded bigdata database.
The NanoSparqlServer is used to answer SPARQL queries. It "knows" about bigdata's MVCC semantics (multi-version concurrency control) and will issue queries to a read-only connection reading from the last commit time on the database and may have somewhat better performance or concurrency as a result. You can more or less follow the same instructions if you want to run against a bigdata federation, but you will have to have the federation up and running already and you will have to use the bulk data loader for the federation to get the data into the database.
# check out the trunk: svn checkout .... # build bigdata ant clean bundleJar # Switch to the lubm package. cd bigdata-perf/lubm ## # Edit build.properties ## # generate the LUBM data set per the build.properties file. ant run-generator # load an LUBM data set into bigdata per the build.properties file. ant run-load # start an http sparql endpoint for that bigdata database instance. ant start-nano-server # run the lubm queries. ant run-query
Here are some sample results.
LUBM U50 (WORM)
LUBM U50 using the Journal in the WORM mode. The load time was 122 seconds (56,183 triples per second). Closure time was 44 seconds.
[java] query Time Result# [java] query1 40 4 [java] query3 8 6 [java] query4 48 34 [java] query5 59 719 [java] query7 22 61 [java] query8 260 6463 [java] query10 22 0 [java] query11 20 0 [java] query12 27 0 [java] query13 19 0 [java] query14 3068 393730 [java] query6 2800 430114 [java] query9 3590 8627 [java] query2 999 130 [java] Total 10982
LUBM U50 (RWStore)
[java] query Time Result# [java] query1 28 4 [java] query3 17 6 [java] query4 29 34 [java] query5 39 719 [java] query7 16 61 [java] query8 166 6463 [java] query10 29 0 [java] query11 29 0 [java] query12 25 0 [java] query13 27 0 [java] query14 2778 393730 [java] query6 2920 430114 [java] query2 540 130 [java] query9 3356 8627 [java] Total 9999