W3C home > Mailing lists > Public > public-lod@w3.org > August 2008

Re: BSBM With Triples and Mapped Relational Data in Virtuoso

From: Chris Bizer <chris@bizer.de>
Date: Thu, 7 Aug 2008 11:33:54 +0200
Message-ID: <E98760522E904647BCBEA0F8EFBCB32C@wrz03715>
To: <public-lod@w3.org>, "Orri Erling \(by way of Ted Thibodeau Jr\)" <erling@xs4all.nl>

Hi Orri and Ivan,

> Consequently, we need to show that mapping can outperform an RDF
> warehouse, which is what we'll do here.

Yes. I was already guessing for a while that SPARQL against RDF-mapped 
relational DBs should be faster than SPARQL against triple stores. 
With D2R Server it turned out that some queries are much faster, but 
also that D2R Server really performas bad on others (especially Q5). 
The bad performance with some queries was no surprise as there is 
still lots of room for improvements in D2R Servers SPARQL-to-SQL query 
rewriting algorithm.
Another observation was that the distance between native RDF stores 
and RDF-mapped RDBs increases with dataset size.
So it looks like that if you have more than 50M triples and schemata 
that somehow fits into a RDB, you should go for the RDF solution.

> We also see that the advantage of mapping can be further increased
> by more compiler optimizations, so we expect in the end mapping will
> lead RDF warehousing by a factor of 4 or so.

Being able to show a factor 4 on all dataset sizes would be very 
interesting!

> Suggestions for BSBM
>
> * Reporting Rules. The benchmark spec should specify a form for
>  disclosure of test run data, TPC style. This includes things like
>  configuration parameters and exact text of queries. There should
>  be accepted variants of query text, as with the TPC.

We have started collecting stuff that should go into the 
full-disclosure report in section 6.2 of the benchmark spec 
http://www4.wiwiss.fu-berlin.de/bizer/BerlinSPARQLBenchmark/spec/index.html#reporting 
but did not had the time to define a proper format for this yet (I 
guess we will have some XML format). We will define the format for 
version 2 of the benchmark, which will be released together with 
updated results in about 3-4 weeks.

If you think that there is something missing from this list, please 
let us know.

> * Multiuser operation. The test driver should get a stream number as
>  parameter, so that each client makes a different query sequence.
>  Also, disk performance in this type of benchmark can only be
>  reasonably assessed with a naturally parallel multiuser workload.

Yes. This is already on our todo list and will also be part of the 
next release.

> * Add business intelligence. SPARQL has aggregates now, at least
>  with Jena and Virtuoso, so let's use these. The BSBM business
>  intelligence metric should be a separate metric off the same data.
>  Adding synthetic sales figures would make more interesting queries
>  possible. For example, producing recommendations like "customers
>  who bought this also bought xxx."

Hmm, yes and no. I would love to extend the benchmark with a BI query 
mix, but aggregates are not yet an official part of SPARQL. Our goal 
with the benchmark was to define a tool to compare stores that 
implement the current SPARQL specs but not to fix these specs. Thus, 
we stayed in the bounderies of the current spec and of couse ran into 
all the know problems of SPARQL (no aggregates, no free-text search, 
no proper negation). All these things were discussed at the SPARQL 2 
BOF at WWW2008 and I hope that they are all on Ivan Herman's list for 
the charter of a new SPARQL WG.

> * For the SPARQL community, BSBM sends the message that one ought to
>  support parameterized queries and stored procedures. This would be
>  a SPARQL protocol extension; the SPARUL syntax should also have a
>  way of calling a procedure. Something like select proc (??, ??)
>  would be enough, where ?? is a parameter marker, like ? in
>  ODBC/JDBC.

Also a great idea and maybe something Ivan does not have on his list 
yet.

> * Add transactions.Especially if we are contrasting mapping vs.
>  storing triples, having an update flow is relevant. In practice,
>  this could be done by having the test driver send web service
>  requests for order entry and the SUT could implement these as
>  updates to the triples or a mapped relational store. This could
>  use stored procedures or logic in an app server.

In principle yes, but we also wanted to design a benchmark that some 
current RDF stores are able to run.
If I look at the current data load times of the SUTs  I'm not so sure 
that they like update streams ;-)

But I agree that update streams are clearly something that we should 
have in the future.

> Comments on Query Mix
>
> The time of most queries is less than linear to the scale factor. Q6
> is an exception if it is not implemented using a text index. Without
> the text index, Q6 will inevitably come to dominate query time as 
> the
> scale is increased, and thus will make the benchmark less relevant 
> at
> larger scales.

You are right and it is again a problem of us trying to stay in the 
bounderies of the SPARQL spec.
No sane person would use a regex for this kind of free-text search, 
but SPARQL only offers the regex function and nothing else.

Maybe we should be a bit less strict here and allow proprietary 
variants of Q6 until SPARQL got fixed.

> Next
>
> We include the sources of our RDF view definitions and other 
> material
> for running BSBM with our forthcoming Virtuoso Open Source 5.0.8
> release. This also includes all the query optimization work done for
> BSBM. This will be available in the coming days.

Great. We are looking forward to rerun the benchmark with the new 
virtuoso release on our box. Especially being able to confirm the 
factor 4 advance of RDF-mapped RDFs against RDF stores would be fun 
;-)

Cheers

Chris and Andreas

>
>
> - Orri
>
>
>
>
>
> [1]
> <http://www.openlinksw.com/dataspace/oerling/weblog/Orri%20Erling%27s%20Blog/1409>
>
> [2]
> <http://www4.wiwiss.fu-berlin.de/bizer/BerlinSPARQLBenchmark/spec/index.html>
>
> [3] <http://www.w3.org/2005/Incubator/rdb2rdf/>
>
> [4]
> <http://www.openlinksw.com/dataspace/oerling/weblog/Orri%20Erling%27s%20Blog/1400>
>
>
>
>
>
> 
Received on Thursday, 7 August 2008 09:34:53 UTC

This archive was generated by hypermail 2.3.1 : Sunday, 31 March 2013 14:24:17 UTC