Browse Benchmarks

Benchmark ::CHILD-EXISTENTIAL-ATTRIB : Existential test, child navigation, and attribute step
(submitted at 2006-06-26T18:00:00)
Authors: Ioana Manolescu (Gemo Group, INRIA Futurs, France) Philippe Michiels (Universiteit Antwerpen, Belgium) Cédric Miachon (BD, LRI, Université Paris Sud 11, France)
Categories: XPath,Query Scalability
Target: All systems
Engine type: persistent-storage main-memory streaming
Measure: The measure targets the total execution time of an XPath query consisting of: an existential child navigation path; child navigation along the same path; and a single attribute step from the targets of this child navigation.
Result unit: Milliseconds

Query:

The query used in this micro-benchmark checks for the existence of a chain of nodes under the root, then performs the same navigation again (this time returning all nodes), and finally retrieves an attribute from each node in the return of this child navigation.

For every integer n, the corresponding query, named CHILD-EXISTENTIAL-ATTRIB(n), is:
/t1[t2/.../tn]/t2/.../tn/@id

The purpose of this query is to test whether a simple form of query minimization is applied by the processor. Clearly, the existential branch can be suppressed, i.e. the query CHILD-EXISTENTIAL-ATTRIB(n) is equivalent to:

/t1/t2/.../tn@id
. If this equivalence is recognized by the processor, the execution time of the two queries should be very close; otherwise, the difference between the two likely corresponds to checking the presence of the existential branch. The execution times recorded on this micro-benchmark are to be compared with the times recorded on the micro-benchmark CHILD-ATTRIB(n).

The attribute step is introduced to obtain a controlled (and small) returned result size.

Syntax:
Language: XPath 1.0
Generator: generateQ16.java

Document:
The document exponential2.xml is a tree such that:
  • the root is labeled t1
  • the root has 2 children, labeled t2
  • each t2 child of the root has two children, labeled t3...
More generally, all nodes but the leaves have two children, all nodes at level i are labeled ti, and the depth of the document is 19 (all nodes at depth 19 are leaves).

The document's size is about 11 MB. The document is generated using the MemBeR document generator with the following configuration file:
Generator: MemBeR.Generator
Configuration file: Q11_exp_MemBeR_Generator_config.xml

Parameters:
Parameter n:
This is the number of consecutive child navigation steps in the query.
This parameter characterizes the: query
Unit: None.
Value Range: [ 1 .. 19 ]
Distribution: uniform
Scale: ordinal
Parameter docsize:
This is the size of the document.
This parameter characterizes the: doc
Unit: Byte
Values: 11946474
Distribution: uniform
Scale: ordinal

Methodology:
Running scenario: queryScale
Test the influence of the number of child steps on the total execution time. All other parameters are fixed.
Parameter instantiation:
Name Value(s)
n 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 , 16 , 17 , 18 , 19
Download the micro-benchmark: [XML]
Micro-benchmark results