[MCOL-411] calgettrace improvement Created: 2016-11-16  Updated: 2016-12-06  Resolved: 2016-11-29

Status: Closed
Project: MariaDB ColumnStore
Component/s: Documentation
Affects Version/s: None
Fix Version/s: Icebox

Type: Task Priority: Major
Reporter: Dipti Joshi (Inactive) Assignee: David Thompson (Inactive)
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
Relates
relates to MCOL-443 Improve calGetTrace output Closed

 Description   

calget trace reports following steps at UM or PM level

BPS - Batch Primitive Step
HJS - Hash Join Step
TAS - Tuple Aggregation step
TUS = Tuple Union step
TNS - Tuple Anex Step

Please provide explanation of this in the output of calgettrace

Also BPS can match to one of the following, please sepcify which exact BPS is being carried out in the plan printed by calgettrace.

  • Single Column Scan: Scan one or more Extents for a given column based on a single column predicate, including: =, <>, in (list), between, isnull, etc.
  • Additional Single Column Filters: Project additional column(s) for any rows found by a previous scan and apply additional single column predicates as needed. Access of blocks is based on row identifier, going directly to the block(s).
  • Table Level Filters: Project additional columns as required for any table level filters such as: column1 < column2, or more advanced functions and expressions. Access of blocks is again based on row identifier, going directly to the block(s).
  • Project Join Columns for Joins: Project additional join column(s) as needed for any join operations. Access of blocks is again based on row identifier, going directly to the block(s).
  • Execute Multi-Join: Apply one or more hash join operation against projected join column(s) and use that value to probe a previously built hash map. Build out tuples as need to satisfy inner or outer join requirements. Note: Depending on the size of the previously built hash map, the actual join behavior may be executed either on the server running PM processes, or the server running UM processes. In either case, the Batch Primitive Step is functionally identical.
  • Cross-Table Level Filters: Project additional columns from the range of rows for the Primitive Step as needed for any cross-table level filters such as: table1.column1 < table2.column2, or more advanced functions and expressions. Access of blocks is again based on row identifier, going directly to the block(s). When a pre-requisite join operation takes place on the UM, then this operation will also take place on the UM, otherwise it will occur on the PM.
  • Aggregation/Distinct Operation Part 1: Apply any local group by, distinct, or aggregation operation against the set of joined rows assigned to a given Batch Primitive. Part 1 of This process is handled by Performance Modules
  • Aggregation/Distinct Operation Part 2: Apply any final group by, distinct, or aggregation operation against the set of joined rows assigned to a given Batch Primitive. This processing is handled by the User Module.


 Comments   
Comment by David Thompson (Inactive) [ 2016-11-29 ]

This should be addressed in the updates to: https://mariadb.com/kb/en/mariadb/analyzing-queries-in-columnstore/

Comment by Dipti Joshi (Inactive) [ 2016-12-05 ]

While https://mariadb.com/kb/en/mariadb/analyzing-queries-in-columnstore/ talks about BPS, DSS, HJS, TAS, TNS and TUS - The request in this jira item is to break down BPS further in the output of calgettrace. As listed in the description of this Jira item, BPS refers 9 different operations and request here is to specify which exact operation is taking place - so that a filter vs aggregation vs join at PM module can be identified.

Comment by David Thompson (Inactive) [ 2016-12-06 ]

Related improvement filed to track enhanced output for BPS. Note that BPS will not encompass all of the 9 listed above (certainly not the join or aggregration ones).

Generated at Thu Feb 08 02:20:52 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.