Commit Graph

7213 Commits

Author SHA1 Message Date
59aa923bce [bug](function) fix milliseconds_diff function return wrong result (#32897)
* [bug](function) fix milliseconds_diff function return wrong result
2024-04-10 11:34:30 +08:00
3b7d75fb4b [fix](inverted index) Clear the index cache corresponding to the table after deleting the table. (#32921) 2024-04-10 11:34:30 +08:00
193600ad9d [Performance](sink) opt mysql result writer (#31816) 2024-04-10 11:34:30 +08:00
7b26feb6de [fix](invert index) Fix the issue of high memory usage. (#31739) 2024-04-10 11:34:30 +08:00
528a889077 [Fix](hive-writer) Fix correct num when hive writing data to an unpartitioned table if size large than hive_sink_max_file_size. (#32959) 2024-04-10 11:34:29 +08:00
97a2977f2a [improvement](executor)Add tag property for workload group #32874 2024-04-10 11:34:29 +08:00
f1ee7f5767 [fix](merge-iterator) fix NOT_IMPLEMENTED_ERROR when read next block view (#32961) 2024-04-10 11:34:29 +08:00
3a6c37c6d5 [exec](column) change some complex column move to noexcept (#32954) 2024-04-10 11:34:29 +08:00
bb8bc75af4 [feature](agg) add aggregate function sum0 (#32541) 2024-04-10 11:34:29 +08:00
e3bd2311b1 [Performance](exec) replace SipHash in function by XXHash (#32919) 2024-04-10 11:34:29 +08:00
28e2d89ce3 [Improve](inverted_index) update clucene and improve array inverted index writer (#32436) 2024-04-10 11:34:29 +08:00
8e6ed80692 [improvement](spill) Disable DistinctStreamingAgg when spill is enabled (#32932) 2024-04-10 11:34:29 +08:00
830d4c14c1 [fix](spill) SpillStream's writer maybe may not have been finalized (#32931) 2024-04-10 11:34:29 +08:00
06e5c6c966 [fix](grace-exit) Stop incorrectly of reportwork cause heap use after free #32929 2024-04-10 11:34:28 +08:00
f23a72b937 [chore](log) print query id before logging profile in be.INFO (#32922) 2024-04-10 11:34:28 +08:00
87f99271e1 [fix](spill) Avoid releasing resources while spill tasks are executing (#32783) 2024-04-10 11:34:28 +08:00
96b995504c [enhancement](statistics) excluded delta rows num for rollup&mv tablets (#32568)
Signed-off-by: freemandealer <freeman.zhang1992@gmail.com>
Co-authored-by: tsy <tangsiyang2001@foxmail.com>
2024-04-10 11:34:28 +08:00
005f7af21f [bugfix](deadlock) should not use query cancelled in fragment mgr 2024-04-09 16:09:01 +08:00
e574b35833 [Enhancement](partition) Refine some auto partition behaviours (#32737) (#33412)
fix legacy planner grammer
fix nereids planner parsing
fix cases
forbid auto range partition with null column
fix CreateTableStmt with auto partition and some partition items.
1 and 2 are about #31585
doc pr: apache/doris-website#488
2024-04-09 15:51:02 +08:00
97850cf2bb [fix](cooldown) Fix hdfs path (#33315) 2024-04-09 12:55:53 +08:00
2a0644f442 [Fix](function) Fix unix_timestamp core for string input (#32871) 2024-04-09 12:48:35 +08:00
3c4ccb3981 Revert "[opt](scan) read scan ranges in the order of partitions (#31630)"
This reverts commit 5d99dffe6f1a3fcb107ce56181aeff96ef222def.
2024-04-09 12:37:31 +08:00
bfc9260507 [bugfix](deadlock) avoid deadlock in memtracker cancel query (#33400)
get_query_ctx(hold query ctx map lock) ---> QueryCtx ---> runtime statistics mgr --->

runtime statistics mgr ---> allocate block memory ---> cancel query

memtracker will try to cancel query when memory is not available during allocator.
BUT the allocator is a foundermental API, if it call the upper API it may deadlock.
Should not call any API during allocator.
2024-04-09 12:20:54 +08:00
0c8d3d007d [fix](jni) don't delete global ref if scanner is not openned (#33398) 2024-04-09 09:06:16 +08:00
4d98fe23a2 [enhancement](rpc) should print fe address in error msg during thrift rpc call (#33381)
Co-authored-by: yiguolei <yiguolei@gmail.com>
2024-04-08 23:10:17 +08:00
0234976ab7 [refactor](meta scan) Remove RPC from execute threads (#33378) 2024-04-08 20:28:02 +08:00
a8232c67f9 [pipelineX](runtime filter) Fix task timeout caused by runtime filter (#33332) (#33369) 2024-04-08 16:30:32 +08:00
d60d804d9c [fix](memory) Fix task repeat attach task DCHECK failed #32784 (#33343)
[branch-2.1](memory) Fix CCR task repeat attach task DCHECK failed3 #33366
2024-04-08 16:15:04 +08:00
c318c48a38 [fix](compile) fix implicit float-to-int conversion in mem_info calculation (#33311) 2024-04-08 07:34:22 +08:00
ebbfb06162 [Bug](array) fix array column core dump in get_shrinked_column as not check type (#33295)
* [Bug](array) fix array column core dump in get_shrinked_column as not check type

* add function could_shrinked_column
2024-04-08 07:27:40 +08:00
1b3e4322e8 [improvement](serde) Handle NaN values in number for MySQL result write (#33227) 2024-04-07 23:24:23 +08:00
fae55e0e46 [Feature](information_schema) add processlist table for information_schema db (#32511) 2024-04-07 23:24:22 +08:00
29556f758e [fix](parquet) fix time zone error in parquet reader (#33217)
`isAdjustedToUTC` is exactly the opposite in parquet reader(https://github.com/apache/parquet-format/blob/master/LogicalTypes.md), resulting the time with `isAdjustedToUTC=true` has increased by eight hours(UTC8).

The parquet with `isAdjustedToUTC=true` can be produced by spark-sql with the following configuration:
```
--conf spark.sql.session.timeZone=UTC
--conf spark.sql.parquet.outputTimestampType=TIMESTAMP_MICROS
```

However, using the following configuration, there's no logical and convert type in parquet meta data, so the time read by doris will also increase by eight hours(UTC8). Users need to set their own UTC time zone in doris(https://doris.apache.org/docs/dev/advanced/time-zone/)
```
--conf spark.sql.session.timeZone=UTC
--conf spark.sql.parquet.outputTimestampType=INT96
```
2024-04-07 23:24:22 +08:00
69bf3b9da4 [fix](hdfs-writer) Catch error information after hdfsCloseFile() (#33195) 2024-04-07 23:24:17 +08:00
586df24b9d [fix](tvf) Support fs.defaultFS with postfix '/' (#33202)
For HDFS tvf like:
```
select count(*) from hdfs(
"uri" = "hdfs://HDFS8000871/path/to/1.parquet",
"fs.defaultFS" = "hdfs://HDFS8000871/",
"format" = "parquet"
);
```

Before, if the `fs.defaultFS` is end with `/`, the query will fail with error like:
```
reason: RemoteException: File does not exist: /user/doris/path/to/1.parquet
```
You can see that is a wrong path with wrong prefix `/user/doris`
User need to set `fs.defaultFS` to `hdfs://HDFS8000871` to avoid this error.

This PR fix this issue
2024-04-07 22:21:14 +08:00
466972926e [fix](dns-cache) do not detach the refresh thread (#33182) 2024-04-07 22:18:56 +08:00
95da52b9d8 [fix](avro) avoid BE crash if avro scanner's dependency jars is mssing (#33031)
1. Check the return value of avro reader's init_fetch_table_schema_reader()
2. Also fix a bug but the parse exception of Nereids may suppress the real exception from old planner
    It will result unable to see the real error msg.
2024-04-07 22:17:16 +08:00
ed93d6132f [fix](jni) avoid coredump if failed to get jni env (#32950)
This PR #32217 find a problem that may failed to get jni env.
And it did a work around to avoid BE crash.

This PR followup this issue, to avoid BE crash when doing `close()` of JniConnector
if failed to get jni env.

The `close()` method will return error when:
1. Failed to get jni env
2. Failed to release jni resource.

This PR will ignore the first error, and still log fatal for second error
2024-04-07 22:16:53 +08:00
c758a25dd8 [opt](fqdn) Add DNS Cache for FE and BE (#32869)
In previously, when enabling FQDN, Doris will call dns resolver to get IP from hostname
each time when 1) FE gets BE's grpc client. 2) BE gets other BE's brpc client.
So when in high concurrency case, the dns resolver be overloaded and failed to resolve hostname.

This PR mainly changes:

1. Add DNSCache for both FE and BE.
    The DNSCache will run on every FE and BE node. It has a cache, key is hostname and value is IP.
    Caller can get IP by hostname from this cache, and if hostname does not exist, it will try to resolve it
    and update the cache.
    In addition, DNSCache has a daemon thread to refresh the cache every 1 min, in case that the IP may
    be changed at anytime.

There are other implements of this dns cache:

1.  36fed13997
    This is for BE side, but it does not handle the IP change case.

3. https://github.com/apache/doris/pull/28479
    This is for FE side, but it can only work with Master FE. Other FE node will not be aware of the IP change.
    And there are a bunch of BackendServiceProxy, this PR only handle cache in one of them.
2024-04-07 22:16:04 +08:00
ecb4372479 [Fix](pipelinex) Fix MaxScannerThreadNum calculation error in file scan operator when turn on pipelinex. (#33037)
MaxScannerThreadNum in file scan operator when turn on pipelinex is incorrect, it will cost many memory and causing performance degradation. This PR fix it.
2024-04-07 22:11:27 +08:00
92d7333810 [Fix](point query) avoid nullptr in _block_pool (#33120)
`resize` will make nullptrs in _block_pool if _block_pool.size() < s_preallocted_blocks_num
2024-04-07 13:02:37 +08:00
77349ca71a [pipelineX](fix) Fix coredump by incorrect cancel order (#33294) 2024-04-07 12:06:12 +08:00
950ca68fac [fix](move-memtable) fix timeout to get tablet schema (#33256) (#33260) 2024-04-04 21:45:55 +08:00
df197c6a14 [fix](move-memtable) fix initial use count of streams for auto partition (#33165) (#33236)
Co-authored-by: Kaijie Chen <ckj@apache.org>
2024-04-03 20:31:29 +08:00
Pxl
05a84bd485 [Bug](runtime-filter) set need_local_merge to false when rf is broadcast (#33211)
set need_local_merge to false when rf is broadcast
2024-04-03 19:14:09 +08:00
Pxl
113bada7ed [Chore](runtime-filter) add check is broadcast on nlj (#33088)
add check is broadcast on nlj
2024-04-03 19:14:05 +08:00
797b8fa456 [FIX](agg) fix vertical_compaction_reader for agg table with array/map type (#33130) 2024-04-03 18:09:45 +08:00
fff5c85a71 [bugfix](stop) should skip the loop when graceful stop (#33212)
Co-authored-by: yiguolei <yiguolei@gmail.com>
2024-04-03 17:10:32 +08:00
7675383c40 [bugfix](deadlock) fix dead lock in cancel fragment (#33181)
Co-authored-by: yiguolei <yiguolei@gmail.com>
2024-04-03 13:41:24 +08:00
Pxl
34f5521643 [Bug](min-max) store string data in MinMaxNumFunc to avoid use after free when cancel (#33152)
* store string data in MinMaxNumFunc to avoid use after free when cancel

* update
2024-04-02 22:35:58 +08:00