[Monetdb-developers] [Monetdb-pf-checkins] pathfinder/compiler/algebra algopt.c, , 1.30, 1.31 planner.c, , 1.56, 1.57 properties.c, , 1.34, 1.35

Keulen, M. van (Maurice) m.vankeulen at utwente.nl
Wed Apr 2 09:56:18 CEST 2008


Hi Jan,

This one is likely to speed up my use of MXQ a lot! Does "references" 
also mean that a lot less elements will be constructed? One of the 
scalability bottlenecks that I frequently encounter in my experiments is 
not that it is slow, but that I create more than 2^32 elements (which 
doesn't fit in a bat with 32-bit oids). Avoiding subtree copies would 
probably improve the scalability of my experiments enormously. I must 
definitely push the move to the algebra backend :-)

Maurice.

Jan Rittinger wrote:
> Update of /cvsroot/monetdb/pathfinder/compiler/algebra
> In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv13092/algebra
>
> Modified Files:
> 	algopt.c planner.c properties.c 
> Log Message:
> -- Added node based properties that check (top-down) if ...
>
>     ... the node may be used (indirectly) for serialization
>
>     ... the node id may be used
>
>     ... the node order may be used
>
>     ... the node values may be accessed
>
>     ... a downward axis is applied lateron
>         (child, descendant, descendant-or-self)
>
>     ... a side-way axis is applied lateron
>         (following, following-sibling, preceding, preceding-sibling)
>
>     ... an upward axis is applied lateron
>         (parent, ancestor, ancestor-or-self)
>
>     ... a self axis is applied lateron
>         (self, ancestor-or-self, descendant-or-self)
>
>     ... the node may be used as input to node construction
>
> -- Exploited the node base property that checks for the downward axis
>    property:
>   
>    For every content constructor whose input is not queried we can
>    use the physical shallow content constructor that makes use of
>    references instead of creating a subtree copy.
>
>    (This sped up the execution time of XMark Q10 (scale factor 1)
>     by 60% and the execution time of XMark Q15 by 150%.)
>
>
> U algopt.c
> Index: algopt.c
> ===================================================================
> RCS file: /cvsroot/monetdb/pathfinder/compiler/algebra/algopt.c,v
> retrieving revision 1.30
> retrieving revision 1.31
> diff -u -d -r1.30 -r1.31
> --- algopt.c	25 Feb 2008 15:37:04 -0000	1.30
> +++ algopt.c	1 Apr 2008 16:37:11 -0000	1.31
> @@ -339,6 +339,7 @@
>                                    false /* composite key */,
>                                    true  /* key */,
>                                    false /* ocols */, 
> +                                  true  /* req_node */,
>                                    false /* reqval */,
>                                    true  /* level */,
>                                    true  /* refctr */,
> @@ -356,6 +357,7 @@
>                                    true  /* composite key */,
>                                    true  /* key */,
>                                    true  /* ocols */, 
> +                                  true  /* req_node */,
>                                    true  /* reqval */,
>                                    true  /* level */,
>                                    true  /* refctr */,
>
> U planner.c
> Index: planner.c
> ===================================================================
> RCS file: /cvsroot/monetdb/pathfinder/compiler/algebra/planner.c,v
> retrieving revision 1.56
> retrieving revision 1.57
> diff -u -d -r1.56 -r1.57
> --- planner.c	26 Mar 2008 11:20:47 -0000	1.56
> +++ planner.c	1 Apr 2008 16:37:13 -0000	1.57
> @@ -1784,7 +1784,7 @@
>                         *(plan_t **) PFarray_at (R(n)->plans, i),
>                         sortby (iter, pos)));
>  
> -    if (false /* magic flag to enable shallow content constructors */)
> +    if (!PFprop_node_content_queried (n->prop, att_item))
>          /* for each plan, generate a constructor */
>          for (unsigned int i = 0; i < PFarray_last (ordered_in); i++)
>              add_plan (ret,
>
> U properties.c
> Index: properties.c
> ===================================================================
> RCS file: /cvsroot/monetdb/pathfinder/compiler/algebra/properties.c,v
> retrieving revision 1.34
> retrieving revision 1.35
> diff -u -d -r1.34 -r1.35
> --- properties.c	14 Jan 2008 14:05:24 -0000	1.34
> +++ properties.c	1 Apr 2008 16:37:14 -0000	1.35
> @@ -122,9 +122,9 @@
>  void
>  PFprop_infer (bool card, bool const_, bool set,
>                bool dom, bool icol, bool ckey,
> -              bool key, bool ocols, bool reqval, 
> -              bool level, bool refctr, bool guides,
> -              bool ori_names, bool unq_names,
> +              bool key, bool ocols, bool req_node,
> +              bool reqval, bool level, bool refctr,
> +              bool guides, bool ori_names, bool unq_names,
>                PFla_op_t *root, PFguide_tree_t *guide)
>  {
>      PFprop_create_prop (root);
> @@ -145,6 +145,8 @@
>          PFprop_infer_guide (root, guide);
>      if (const_)
>          PFprop_infer_const (root);
> +    if (req_node)
> +        PFprop_infer_req_node (root);
>      if (reqval)
>          PFprop_infer_reqval (root);
>      if (dom)
>
>
> -------------------------------------------------------------------------
> Check out the new SourceForge.net Marketplace.
> It's the best place to buy or sell services for
> just about anything Open Source.
> http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
> _______________________________________________
> Monetdb-pf-checkins mailing list
> Monetdb-pf-checkins at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/monetdb-pf-checkins
>   

-- 
----------------------------------------------------------------------
Dr.Ir. M. van Keulen - Assistant Professor, Data Management Technology
Univ. of Twente, Dept of EEMCS, POBox 217, 7500 AE Enschede, Netherlands
Email: m.vankeulen at utwente.nl, Phone: +31 534893688, Fax: +31 534892927
Room: ZI 3039, WWW: http://www.cs.utwente.nl/~keulen





More information about the developers-list mailing list