We're Moving!

The Vertica Forum is moving to a new OpenText Analytics Database (Vertica) Community.

Join us there to post discussion topics, learn about

product releases, share tips, access the blog, and much more.

Create My New Community Account Now


empty node_name in execution_engine_profiles in vertica 7 — Vertica Forum

empty node_name in execution_engine_profiles in vertica 7

in vertica 7, the node_name column in execution_engine_profiles is returned as an empty string (i.e., length of zero) if another query is executing concurrently. however, the other column values in execution_engine_profiles appear to be correct. once the other query has finished, node_name has correct values. this problem occurs with both single node vertica 7 running on a vm and a four node vertica instance on redhat. 

assuming this is a bug (and not a mistake on my part), it means one cannot really profile a long-running query while it is executing because the node_name information is missing. so, a quick fix or work-around would be appreciated.

to reproduce the bug, install single-node vertica on a VM (we used ubuntu) and install the demo database, vmmart.

create a large fact table to ensure a long-running query. we duplicated the data in the table online_sales_fact using the following query (executed 5 times so the table will end with 80 million rows):

 insert into online_sales.online_sales_fact (select * from online_sales.online_sales_fact);

then, in one screen, execute the sample query 9 from the Vertica vmart documentation: 

PROFILE SELECT sales_quantity, sales_dollar_amount, transaction_type, cc_name
FROM online_sales.online_sales_fact
INNER JOIN online_sales.call_center_dimension 
ON (online_sales.online_sales_fact.call_center_key
      = online_sales.call_center_dimension.call_center_key AND sale_date_key = 156)
ORDER BY sales_dollar_amount DESC;

record the transaction id and statement id. then, while the profiled query is executing, query execution_engine_profiles, e.g., (need to define tid and sid)

select ep.path_id as pid, ep.node_name, ep.baseplan_id as bid, ep.localplan_id as lpid, ep.operator_id as opid, ep.activity_id as aid, ep.resource_id as rid, ep.operator_name, ep.counter_name, ep.counter_tag, ep.counter_value
from execution_engine_profiles as ep 
where transaction_id = :tid and statement_id = :sid
order by path_id, node_name, baseplan_id, localplan_id, operator_id;

if the profiled query is still running, node_name will appear empty. then, when the profiled query completes, rerun the execution_engine_profiles query and node_name will appear.


Leave a Comment

BoldItalicStrikethroughOrdered listUnordered list
Emoji
Image
Align leftAlign centerAlign rightToggle HTML viewToggle full pageToggle lights
Drop image/file