Commit Graph

36 Commits

Author SHA1 Message Date
0e3522c088 [improvement](test) set default value of parallel config items to 10 (#13234) 2022-10-10 15:58:44 +08:00
984d387945 [Regression](load) Add broker load regression test. (#13062)
Add basic broker load regression test. It has been tested. But default
2022-10-04 21:29:05 +08:00
d10ab474f4 [fix](test) try to let cases run in parallel (#13114) 2022-10-04 20:56:22 +08:00
48d32de9ae [enhancement](test) add some cases from trino to p0 (#12699) 2022-09-30 21:35:30 +08:00
6b6d548df9 [enhancement](test) add more p0 cases (#12285) 2022-09-29 10:45:17 +08:00
e627d285e0 [chore](regression-test) add default group(p0) for regression-test (#12977) 2022-09-28 11:47:19 +08:00
a79d2e592b [improvement](test) cache data from s3 to cacheDataPath (#13018)
Now, regression data is stored in sf1DataPath, which is local or remote.
For performance reason, we use local dir for community pipeline, however, we need prepare data for every machine, 
this process is easy mistake. So we cache data from s3 in local transparently, thus, we just need to config one data source.
2022-09-28 10:43:55 +08:00
3130a19fe9 [feature](regression) Enhancement regression frame, support http post… (#12565) 2022-09-14 15:31:59 +08:00
772e5907f2 [enhancement](test) add some p0 cases (#12240) 2022-09-07 09:10:42 +08:00
f3cb0c24ee [enhancement](test) add restore action and s3 helper methond (#12084)
Co-authored-by: morrySnow <morrysnow@126.com>
Co-authored-by: SWJTU-ZhangLei <1091517373@qq.com>
2022-08-31 23:08:23 +08:00
05da3d947f [feature-wip](new-scan) add scanner scheduling framework (#11582)
There are currently many types of ScanNodes in Doris. And most of the logic of these ScanNodes is the same, including:

Runtime filter
Predicate pushdown
Scanner generation and scheduling
So I intend to unify the common logic of all ScanNodes.
Different data sources only need to implement different Scanners for data access.
So that the future optimization for scan can be applied to the scan of all data sources,
while also reducing the code duplication.

This PR mainly adds 4 new class:

VScanner
All Scanners' parent class. The subclasses can inherit this class to implement specific data access methods.

VScanNode
The unified ScanNode, and is responsible for common logic including RuntimeFilter, predicate pushdown, Scanner generation and scheduling.

ScannerContext
ScannerContext is responsible for recording the execution status
of a group of Scanners corresponding to a ScanNode.
Including how many scanners are being scheduled, and maintaining
a producer-consumer blocks queue between scanners and scan nodes.

ScannerContext is also the scheduling unit of ScannerScheduler.
ScannerScheduler schedules a ScannerContext at a time,
and submits the Scanners to the scanner thread pool for data scanning.

ScannerScheduler
Unified responsible for all Scanner scheduling tasks

Test:
This work is still in progress and default is disabled.
I tested it with jmeter with 50 concurrency, but currently the scanner is just return without data.
The QPS can reach about 9000.
I can't compare it to origin implement because no data is read for now. I will test it when new olap scanner is ready.
Co-authored-by: morningman <morningman@apache.org>
2022-08-23 08:45:18 +08:00
ff1971f916 [improvement](test) add dryRun option and group all cases into either p0 or p1 (#11576)
1. add dryRun option to list tests
2. group all cases into p0 p1 p2
2022-08-17 22:45:53 +08:00
ee4d9d4347 [improvement](test) group some cases and group a case to p0 if it is not grouped (#11548) 2022-08-06 15:12:08 +08:00
93cb80c9cb [test] use suffix of directory as group name and use directory as dbname (#11142)
* use suffix of directory as group name and use directory as dbname

We can rename tpcds_sf1 to tpcds_sf1_p1, then tpcds_sf1 will be in group
p1.  We will group cases to p0, p1, p2, p3 in the future.

p0: function cases running in seconds.
p1: cases with expected out running in minutes, like tpcds_sf1
p2: cases with expected out running in hours, like tpcds_sf10 tpcds_sf100
p3: cases without without expected out to test core dump.
2022-07-25 12:10:31 +08:00
7c7852994c (fix)(Nereids) fix ssb and add regression test case (#11095)
current nereids planner execute ssb will run into dead loop and crash be, this pr fix this problem and add some regression test case prevent execute ssb failed
2022-07-23 12:41:47 +08:00
ae53a8a7e9 [regression] sf1DataPath can be url or local path (#11065) 2022-07-21 14:35:24 +08:00
2b6cdcf599 [improvement] add an option to let regression stop when a failure happen (#10939)
For community pipeline, it is a waste of resource to run tests with errors.
2022-07-18 08:53:17 +08:00
41f71f3ade [regression] add ssb sf1 test (#10831)
Co-authored-by: stephen <hello-stephen@qq.com>
2022-07-14 15:03:40 +08:00
4719d4705f [regression] update test framework and fix cases (#10686)
and regression test exclude suite test_create_table_with_bloom_filter temporarily.

Co-authored-by: stephen <hello-stephen@qq.com>
2022-07-13 10:16:16 +08:00
2b2bf017f8 [enhancement](regression-test) add real data path for regression test. (#10577)
in some situation, we need compare real result with
previous result for  analyzing.
2022-07-08 20:51:23 +08:00
43015f11a5 [Improvement] remove beHttpAddress in regression test (#10623) 2022-07-06 08:59:29 +08:00
67f341f44e [TLP](step-1) Remove incubator prefix (#10230)
Remove some `incubator-` prefix in source code.
The document is not modified, will be done in next PR.
2022-06-19 19:34:52 +08:00
e5ed259da6 [fix](regression-test) fix the comparison errors caused by inconsistent accuracy (#9931) 2022-06-09 00:35:22 +08:00
a738d385db [regression] add regression test for compaction (#9437)
Trigger compaction via REST API in this case.
2022-05-11 09:40:21 +08:00
e6c3557b1b [improvement](regression-test) Support suite plugin to add third-part… (#9294)
Support register suite plugin to add third-party function.

See 
1. register in: ${DORIS_HOME}/regression-test/plugins/plugin_example.groovy
2. usage: ${DORIS_HOME}/regression-test/suites/demo/test_plugin.groovy
3. doc: ${DORIS_HOME}/docs/zh-CN/developer-guide/regression-testing.md
2022-05-05 20:45:45 +08:00
4ca3eb7fe2 [improvement](regression-test) support exclude suite/group/directory (#9096)
regression testing framework support skip some suite/group/directory
2022-05-05 09:50:07 +08:00
2cecb5dc82 [fix](regression-test) disable test for hdfs and fix double type with null (#9080)
1. add a new config in regression-conf.groovy
    enableHdfs, default is false, to skip tests with hdfs
2. fix a bug that when double type column result is null, exception will be thrown
2022-04-18 19:37:37 +08:00
ca4f4d199e [Feature][regression-test]CSV import and export support header (#8487) (#9017)
* [Feature][regression-test]CSV import and export support header (#8487)
1.Add two new types to stream load boker load: csv_with_names and csv_with_name_sand_types
2.Add two new types to export: csv_with_names and csv_with_names_and_types
2022-04-15 13:44:36 +08:00
Pxl
90cf8ddf25 [Enhancement][Regression-Test] enhancement for regression-test framework (#8930) 2022-04-15 11:26:45 +08:00
f28ad36c02 [test][improvement] support execute multiple sql in sql file (#8902)
regression testing framework support execute multiple sql in sql file
2022-04-09 19:15:53 +08:00
decdc8e8b9 [test][enhance][refactor] support suite block to specify multiple group, suppo… (#8792)
support suite block to specify multiple groups.
TestAction support compare result to iterator, local file and http stream.
support print teamcity service message.
abandon the logical: generate groovy file for sql file
support 3 levels parrallel: script file, suite block, thread action
support specify JAVA_OPTS for boot shell
avoid jvm metaspace oom
use -d to run the suite in some directories, instead of -g. and -g is used to specify groups
2022-04-01 20:59:01 +08:00
9db2a96af1 [test] support a lot of actions (#8632)
Support a lot of actions for regression testing framework.
e.g. thread, lazyCheck, onSuccess, connect, selectUnionAll, timer

Demo exists in ${DORIS_HOME}/regression-test/suites/demo
2022-03-24 20:22:24 +08:00
70fbb3b55c [test] support run regression test with out load data (#8499)
skip load data in regression test to avoid load large dataset every time
2022-03-17 10:10:31 +08:00
aadfbcb9c8 [test] support order qt for sql file and fix exception (#8483)
We need order some sql's results to get steady output.
2022-03-16 17:09:23 +08:00
c1a195421a [test] let framework support sql cases and run cases in parallel and random order (#8460)
We generate groovy files from sql cases and run the generated groovy
file. This way, we can just put sql cases, then framework handles
left work.
2022-03-15 11:44:08 +08:00
694e6433cc [feature](test) Add regression test framework (#8125)
Add scalable regression testing framework(#7584)
contains
- Test framework making by groovy, and support built-in **readable DSL** named as `Action`
- Demo exists in `${DORIS_HOME}/regression-test/data/demo`
- Chinese doc exist in `${DORIS_HOME}/docs/zh-CN/developer-guide/regression-testing.md`

English document coming soon
2022-02-19 12:05:50 +08:00