zhouqingqing / qpmodel

A Relational Optimizer and Executor
MIT License
66 stars 18 forks source link

fix race condition of distributed execution #191

Closed zhouqingqing closed 4 years ago

zhouqingqing commented 4 years ago

In the real execution, we will have to serialize all information we want the receiver side to deserialize, including physic node an logic node and could be some more. So to emulate this behavior correctly, we shall either having one copy for each participanting thread or make sure their shared copy not change. We do the second way by moving CreateKeyList() to the last step in logic join creation, instead of every physic join doing that separately.

zhouqingqing commented 4 years ago

2020-08-17T19:14:52.4434000Z Debug Trace: 2020-08-17T19:14:52.4434251Z ../../../../test/regress/output/tpch0001_d/q16.txt; 2020-08-17T19:14:52.4434397Z 2020-08-17T19:14:52.4434569Z 2020-08-17T19:15:33.0668374Z 2020-08-17T19:15:33.0682603Z Test Run Failed. 2020-08-17T19:15:33.0682859Z Total tests: 47 2020-08-17T19:15:33.0683217Z Passed: 46 2020-08-17T19:15:33.0683450Z Failed: 1

q16 failure is a known issue due to subquery execution and not related to this change.