Query failing on a cluster with 2 nodes down
Hi, I have a cluster of 5 nodes (v6.1.2), with 2 nodes currently down. Elastic_cluster is enabled, all my design is ksafe=2. I would thus expect to be able to carry on working as usual for whichever 2 nodes down. I now have queries failing with the following error:
ERROR: Insufficient projections to answer query Detail: Path segment called for on node v_spil_dwh_node0003 can not be computednode3 is indeed one of the nodes down. I checked all the projections of the tables referenced in the query, they all are ksafe=2, I can select from all of them. There is nothing relevant I could find in the documentation. What could be the cause (and solution) of this? Thanks, Guillaume
0
Comments
INSERT INTO dcl.wc_event ( realm_id , campaign_id , list_id , email , event_dts , event_type_id , event_cnt ) at epoch latest SELECT dcl_wcr.realm_id, stc_wc.campaign_id, stc_wc.list_id, stc_wc.email, stc_wc.event_date AS event_dts, stc_wc.event_type AS event_type_id, COUNT(*) AS event_cnt FROM stg.wc_hourly_report_tracked_events stc_wc JOIN dcl.wc_realm dcl_wcr ON stc_wc.realm = dcl_wcr.realm_name WHERE stc_wc.batch_source_path IN ( SELECT batch_source_path FROM temp_insert_wc ) GROUP BY dcl_wcr.realm_id, stc_wc.campaign_id, stc_wc.list_id, stc_wc.email, stc_wc.event_date, stc_wc.event_type ERROR: Insufficient projections to answer query Detail: Path segment called for on node v_spil_dwh_node0003 can not be computed spil_dwh=> select export_objects('', 'dcl.wc_event'); CREATE TABLE dcl.wc_event ( realm_id int, campaign_id int, list_id int, email varchar(255), event_dts timestamp, event_type_id int, event_cnt int ); CREATE PROJECTION dcl.wc_event /*+createtype(L)*/ ( realm_id, campaign_id, list_id, email, event_dts, event_type_id, event_cnt ) AS SELECT wc_event.realm_id, wc_event.campaign_id, wc_event.list_id, wc_event.email, wc_event.event_dts, wc_event.event_type_id, wc_event.event_cnt FROM dcl.wc_event ORDER BY wc_event.realm_id, wc_event.campaign_id, wc_event.list_id, wc_event.email, wc_event.event_dts, wc_event.event_type_id SEGMENTED BY hash(wc_event.realm_id, wc_event.campaign_id, wc_event.list_id, wc_event.email, wc_event.event_dts, wc_event.event_type_id) ALL NODES KSAFE 2; SELECT MARK_DESIGN_KSAFE(2); (1 row) spil_dwh=> select export_objects('', 'stg.wc_hourly_report_tracked_events'); CREATE TABLE stg.wc_hourly_report_tracked_events ( batch_source_name varchar(255), batch_source_path varchar(255), batch_import_timestamp timestamp, realm varchar(100), campaign_id int, campaign_alias varchar(500), list_id int, list_name varchar(500), subscriber_id int, email varchar(500), first_name varchar(500), last_name varchar(500), event_date timestamp, event_type int ); CREATE PROJECTION stg.wc_hourly_report_tracked_events /*+createtype(L)*/ ( batch_source_name, batch_source_path, batch_import_timestamp, realm, campaign_id, campaign_alias, list_id, list_name, subscriber_id, email, first_name, last_name, event_date, event_type ) AS SELECT wc_hourly_report_tracked_events.batch_source_name, wc_hourly_report_tracked_events.batch_source_path, wc_hourly_report_tracked_events.batch_import_timestamp, wc_hourly_report_tracked_events.realm, wc_hourly_report_tracked_events.campaign_id, wc_hourly_report_tracked_events.campaign_alias, wc_hourly_report_tracked_events.list_id, wc_hourly_report_tracked_events.list_name, wc_hourly_report_tracked_events.subscriber_id, wc_hourly_report_tracked_events.email, wc_hourly_report_tracked_events.first_name, wc_hourly_report_tracked_events.last_name, wc_hourly_report_tracked_events.event_date, wc_hourly_report_tracked_events.event_type FROM stg.wc_hourly_report_tracked_events ORDER BY wc_hourly_report_tracked_events.batch_source_name, wc_hourly_report_tracked_events.batch_source_path, wc_hourly_report_tracked_events.batch_import_timestamp, wc_hourly_report_tracked_events.realm, wc_hourly_report_tracked_events.campaign_id, wc_hourly_report_tracked_events.campaign_alias, wc_hourly_report_tracked_events.list_id, wc_hourly_report_tracked_events.list_name, wc_hourly_report_tracked_events.subscriber_id, wc_hourly_report_tracked_events.email, wc_hourly_report_tracked_events.first_name, wc_hourly_report_tracked_events.last_name, wc_hourly_report_tracked_events.event_date, wc_hourly_report_tracked_events.event_type SEGMENTED BY hash(wc_hourly_report_tracked_events.batch_import_timestamp, wc_hourly_report_tracked_events.campaign_id, wc_hourly_report_tracked_events.list_id, wc_hourly_report_tracked_events.subscriber_id, wc_hourly_report_tracked_events.event_date, wc_hourly_report_tracked_events.event_type, wc_hourly_report_tracked_events.realm, wc_hourly_report_tracked_events.batch_source_name, wc_hourly_report_tracked_events.batch_source_path, wc_hourly_report_tracked_events.campaign_alias, wc_hourly_report_tracked_events.list_name, wc_hourly_report_tracked_events.email, wc_hourly_report_tracked_events.first_name, wc_hourly_report_tracked_events.last_name) ALL NODES KSAFE 2; SELECT MARK_DESIGN_KSAFE(2); (1 row) spil_dwh=> select export_objects('', 'dcl.wc_realm'); CREATE TABLE dcl.wc_realm ( realm_id int NOT NULL, realm_name varchar(255), realm_desc varchar(255), password varchar(25), channelid int ); ALTER TABLE dcl.wc_realm ADD CONSTRAINT pk_dcl_wc_realm PRIMARY KEY (realm_id); CREATE PROJECTION dcl.wc_realm_DBD_200_rep_initial_initial /*+createtype(D)*/ ( realm_id, realm_name, realm_desc, password, channelid ) AS SELECT wc_realm.realm_id, wc_realm.realm_name, wc_realm.realm_desc, wc_realm.password, wc_realm.channelid FROM dcl.wc_realm ORDER BY wc_realm.realm_id UNSEGMENTED ALL NODES; SELECT MARK_DESIGN_KSAFE(2); (1 row)The last table being a temporary table, I cannot export it. This could well be the reason... I am still very curious about the signification of get_node_dependencies(); Thanks,