Browse Benchmarks

Benchmark ::FLWR-NESTED-RETURN-LEAF : Descendant axis navigation
(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: XQuery,Query Scalability
Target: All systems
Engine type: persistent-storage main-memory streaming
Measure: The measure targets the total execution time of nested XQuery queries, returning increasingly deep constructed trees.
Result unit: Milliseconds

Query:

The queries used in this micro-benchmark all copy all the leaf elements from the input document. However, the copied trees are wrapped in increasingly high piles of new constructed elements, by means of increasingly deeply nested XQuery blocks.

For illustration, here are some examples of FLWR-NESTED-RETURN-LEAF queries:
  • For
    n=0
    , the query FLWR-NESTED-RETURN-LEAF(0) is:
          
              for $x in /t1/t2 return
              <res>{for $x1 in $x/* return
                    <res>{$x1//t13}</res>}
    	  </res>
        
        
  • For
    n=1
    , the query FLWR-NESTED-RETURN-LEAF(1) is:
          
               for $x in /t1/t2 return
               <res>{for $x1 in $x/* return
                     <res>{for $x2 in $x1/* return
                           <res>{$x2//t13}</res>}
                     </res>
               </res>}
          
          
  • For
    n=2
    , the query FLWR-NESTED-RETURN-LEAF(2) is:
          
               for $x in /t1/t2 return
               <res>{for $x1 in $x/* return
                     <res>{for $x2 in $x1/* return
                           <res>{for $x3 in $x2/* return
                                 <res>{$x2//t13}</res>}
                           </res>
                     </res>
               </res>}
          
          
Syntax:
Language: XQuery 1.0
Generator: generateQ26.java

Document:
The document flat2.xml is a tree such that:
  • the root is labeled t1
  • the root has 3268 children, labeled t2
  • each t2 child of the root (level 2 node) has 10 children, labeled with equal probability t3, t4, t5, ..., t12
  • each child of a t2 element (level 3 node) has 1 child, labeled with equal probability t3, t4, t5, ..., t12
  • ...
  • each level 12 node has 1 child, labeled with equal probability t3, t4, t5, ..., t12
  • each evel 13 element is a leaf.

More generally: the root has fanout 3268, the root's children have fanout 10 (bringing the number of nodes at level 2 to 32680), all elements whose level is between 2 and 12 have exactly one child, and the elements at level 13 have no children. (The document can be seen as a rooted collection of 32680 chains of parent-child elements, 10 deep.) At levels 3 to 13, node labels are uniformly distributed among t3, t4,..., t13.

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: Q21_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: 11009952
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 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9
Download the micro-benchmark: [XML]
Micro-benchmark results