原框架:
训练:train_model.py获取query,对于每个query,交给pg_lero_extension调节card来生成一系列plan(但是不返回给train_model.py)并预测分数,将去重后的card 和predict_score存为dump_list_with_socre.txt。train_model.py读取dump_list_with_socre.txt中的card,然后根据score获取top-k组card。将这些card写入到pg_data目录下,pg获取后生成一系列plan作为训练集
测试:train_model.py的test_bench模块获取测试query,给到pg_lero_extension,它通过调节card来获取plan,并预测分数,选取分数最低的plan作为输出
改造目的:高效运行lero
将训练集和测试集走训练的流程,top-k调大为100,生成所有plan。
训练时直接读文件,测试时不走pg,改写代码,直接通过train_model.py调用模型和已有的plan来预测,节省了pg和server互相通信的开销