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
> [EMAIL PROTECTED]
> 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: [EMAIL PROTECTED], Phone: +31 534893688, Fax: +31 534892927
Room: ZI 3039, WWW: http://www.cs.utwente.nl/~keulen
-------------------------------------------------------------------------
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-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-developers