Commit Graph

194 Commits

Author SHA1 Message Date
f9ee3ff359 [thirdparty](lib) Add base64 thirdparty lib (#31850) 2024-03-14 09:18:52 +08:00
a4f9eec810 [chore](third-party) Link protobuf with zlib statically (#31173)
We should link protobuf with libz.a explicitly, otherwise protoc may not be executable due to the missing libz.1.dylib.
2024-02-21 13:53:39 +08:00
99cdbc7e12 [fix](memory) Fix jemalloc lib name for thirdparty arrow (#28843)
after #28429
2024-02-21 13:52:10 +08:00
7a6475eeee [deps](hadoop) update hadoop on BE side to 3.3.6 (#29939)
Same as on FE side
2024-01-14 15:52:04 +08:00
75631c89fa [Fix](thirdparty) fix that BE can not start when use JDK17 (#29570)
An error occurred when starting BE with JDK17

```java
Exception: java.lang.StackOverflowError thrown from the UncaughtExceptionHandler in thread "process reaper"
```

This error occurs when BE's java code calls Runtime.exec() to fork the child process.
It turned out that Doris was calling the `glog` library in the C++ layer to cause this problem.


The solution comes from: https://github.com/google/glog/issues/975
2024-01-12 11:44:21 +08:00
7c5fda1169 [thirdparty](lib) Add streamvbyte thirdparty lib (#29308) 2023-12-29 19:22:07 +08:00
4bcde57775 [enhancement](memory) Support jemalloc 64K page size - thirdparty (#28429) 2023-12-18 12:38:09 +08:00
65126459bd [deps](compression) Opt gzip decompress by libdeflate on X86 and X86_64 platforms: 1. Add libdeflate lib. (#27542)
Test result:

- env: 1 node(16 cores, 64G).
- parquet column: 100 million rows of char(255) column.
- result: 9.09 s -> 6.04 s.
2023-11-28 10:14:48 +08:00
a5565f68b2 [Refactor](opentelemetry) Remove opentelemetry (#26605) 2023-11-09 18:05:34 +08:00
4889841ff7 [thirdparty](import) import avx2neon library (#25383)
import avx2neon library
2023-10-23 11:51:54 +08:00
11d03a3ab0 [thirdyparty] new thirdy party dragonbox (#24979) 2023-09-28 13:42:44 +08:00
57ca7d66d3 [Fix](multi-catalog) Fix zlib init error by using doris's zlib shared library and jni.log does not output. (#23260) 2023-09-02 21:44:14 +08:00
ba351af452 [enhancement](thirdparty) upgrade thirdparty libs - again (#23414)
submit again #23290 (not upgrade brpc, because bthread local has error)

protobuf 3.15.0 -> 21.11
glog 0.4.0 -> 0.6.0
lz4 1.9.3 -> 1.9.4
curl 7.79.0 -> 8.2.1
zstd 1.5.2 -> 1.5.5
arrow 7.0.0 -> 13.0.0
abseil 20220623.1 -> 20230125.3
orc 1.7.2 -> 1.9.0
jemalloc for arrow 5.2.1 -> 5.3.0
xsimd 7.0.0 -> 13.0.0
opentelemetry-proto 0.19.0 -> 1.0.0
opentelemetry 1.8.3 -> 1.10.0

new:
c-ares -> 1.19.1
grpc -> 1.54.3
2023-08-26 22:59:10 +08:00
303d5ac3f7 Revert "[enhancement](thirdparty) upgrade thirdparty libs (#23290)" (#23420)
This reverts commit 2185268bab2f5890a2c3c9a3c315375a971c4416.

Co-authored-by: stephen <hello-stephen@qq.com>
2023-08-24 14:40:51 +08:00
2185268bab [enhancement](thirdparty) upgrade thirdparty libs (#23290)
protobuf 3.15.0 -> 21.11
glog 0.4.0 -> 0.6.0
lz4 1.9.3 -> 1.9.4
curl 7.79.0 -> 8.2.1
brpc 1.4.0 -> 1.6.0
zstd 1.5.2 -> 1.5.5
arrow 7.0.0 -> 13.0.0
abseil 20220623.1 -> 20230125.3
orc 1.7.2 -> 1.9.0
jemalloc for arrow 5.2.1 -> 5.3.0
xsimd 7.0.0 -> 13.0.0
opentelemetry-proto 0.19.0 -> 1.0.0
opentelemetry 1.8.3 -> 1.10.0

new:
c-ares -> 1.19.1
grpc -> 1.54.3
2023-08-23 20:25:49 +08:00
a5382043d7 [chore](third-party) Fix errors while building brpc (#23339)
close #23340
2023-08-23 09:13:06 +08:00
3b8981bee7 [chore](third-party) Speed the download up for aws-crt-cpp (#22997)
The package aws-sdk-cpp was upgraded in #20252. We can speed the download up for aws-crt-cpp.
2023-08-16 09:47:18 +08:00
c2c01825c1 [opt](stacktrace) Optimize stacktrace output #22467 2023-08-06 15:53:53 +08:00
9a95d664b9 [chore](third-party) Fix the build order for libunwind (#22244)
1. libunwind depends on lzma
2. Fix the missing headers issues reported by GCC-13
2023-07-27 14:07:08 +08:00
e0705f1149 [chore](third-party) Introduce libunwind (#21938) 2023-07-19 01:55:26 +08:00
fde73b6cc6 [Fix](multi-catalog) Fix hadoop short circuit reading can not enabled in some environments. (#21516)
Fix hadoop short circuit reading can not enabled in some environments.
- Revert #21430 because it will cause performance degradation issue.
- Add `$HADOOP_CONF_DIR` to `$CLASSPATH`.
- Remove empty `hdfs-site.xml`. Because in some environments it will cause hadoop short circuit reading can not enabled.
- Copy the hadoop common native libs(which is copied from https://github.com/apache/doris-thirdparty/pull/98
) and add it to `LD_LIBRARY_PATH`. Because in some environments `LD_LIBRARY_PATH` doesn't contain hadoop common native libs, which will cause hadoop short circuit reading can not enabled.
2023-07-06 15:00:26 +08:00
af51a31c21 [deps](benchmark) bump benchmakr from 1.5.6 -> 1.8.0 (#21121)
To support some new methods used in #21074
2023-06-25 23:42:54 +08:00
b0bbff0fd1 [performance](load) improve memtable sort performance (#20392) 2023-06-04 20:33:15 +08:00
047311171d [deps](libhdfs) change hadoop libhdfs to source compile (#20058)
compile it as other deps, instead of downloading prebuild binary.
Only for linux platform
2023-05-26 14:37:49 +08:00
f32deb18e9 [Update](build) change clucene from thirdparty to git module (#19352) 2023-05-19 08:25:51 +08:00
fe553f7dfc [chore](third-party) Support specifying packages to build (#19688)
Usage: ./build-thirdparty.sh [options...] [packages...]
  Optional options:
     -j <num>               build thirdparty parallel
     --clean                clean the extracted data
     --continue <package>   continue to build the remaining packages (starts from the specified package)

Examples:
1. Specify packages to build.
    Build gflags, gtest and glog by executing ./build-thirdparty.sh gflags gtest glog.
2. Continue to build the remaining packages.
    Build the remaining packages (starts from sse2neon) by executing ./build-thirdparty.sh --continue sse2neon.
2023-05-16 19:24:19 +08:00
ddcf7ec1b4 [chore](third-party) Don't link keyutils to krb5 explicitly (#19632)
We may link system-wide keyutils to krb5 when building krb5 which may introduce an extra dependency to the codebase.
2023-05-16 10:37:37 +08:00
2504b243f0 [Fix](build) fix clucene build type (#19376)
RelWithDebInfo default uses O2 as compile flags which hurt performance for clucene
2023-05-09 14:29:04 +08:00
673cbe3317 [chore](build) Porting to GCC-13 (#19293)
Support using GCC-13 to build the codebase.
2023-05-08 10:42:06 +08:00
d28030e1e5 [chore](third-party) Configure the search paths for pkg-config and cmake (#18624)
Currently, our third party libraries are built by autotools or cmake. Under some scenarios, we may use system-wide headers or libraries to build them which may make the build process fail.

We can configure the search paths explicitly to help autotools and cmake find the right dependencies.
2023-04-14 08:43:27 +08:00
99195f9de9 [chore](third-party) Porting to Clang-16 (#18515)
Fix the error implicit-function-declaration which raises when building libunixodbc and gsasl by Clang-16 on Linux.
2023-04-11 00:53:38 +08:00
04af1650e5 [Optimize](mutlti-catalog) Opt zlib performance by adding '-O3' cflags. (#18488)
Opt zlib performance by adding '-O3' cflags.
From orc' reader test, it has 2.5x performance boost.
2023-04-09 08:52:48 +08:00
f9c4542d04 [chore](build) Porting to Clang-16 (#18196)
This PR ports the codebase to Clang-16.

Upgrade some third-party libraries:
1. Apache BRPC: 1.2.0 -> 1.4.0 (Some bugs are fixed and all patches for 1.2.0 can be removed.)
2. Boost: 1.73.0 -> 1.81.0 (Porting to Clang-16)
3. libclucene: 2.4.6 -> 2.4.8 (Porting to Clang-16)
2023-03-30 10:36:29 +08:00
Pxl
1a549edac2 [Chore](third-party) upgrade thrift from 0.13 to 0.16 (#17202)
upgrade thrift from 0.13 to 0.16
There is thrift's release notes https://github.com/apache/thrift/blob/master/CHANGES.md
2023-03-10 11:33:16 +08:00
57233dc53a [deps](libhdfs) fix hadoop libs build error (#17470) 2023-03-07 08:52:40 +08:00
bc5f16dc80 [deps](libhdfs) add official hadoop libhdfs for x86 (#17435)
This is the first step to introduce official hadoop libhdfs to Doris.
Because the current hdfs client libhdfs3 lacks some important feature and is hard to maintain.

Download the hadoop 3.3.4 binary from hadoop website: https://hadoop.apache.org/releases.html
Extract libs and headers which are used for libhdfs, and pack them into hadoop_lib_3.3.4-x86.tar.gz
Upload it to https://github.com/apache/doris-thirdparty/releases/tag/hadoop-libs-3.3.4

TODO:
The hadoop libs for arm is missing, we need to find a way to build it
2023-03-06 12:47:53 +08:00
cf7e97dd27 [chore](thirdparty) Fix the linkage errors for librdkafka (#17181)
Fix the linkage errors for librdkafka
2023-02-28 21:37:27 +08:00
ad86b931d4 [Thirdparty](clucene) update clucene to v2.4.6 to fix bthread/pthread context bug (#16982)
1. change clucene version from 2.4.4->2.4.6
2. update build-thirdparty.sh clucene's build block, adding USE_BTHREAD CMAKE flag, this flag is inherited from doris's USE_BTHREAD_SCANNER.
2023-02-22 11:24:45 +08:00
cd3dbc33c9 [deps](be) update libhdfs3 and jemalloc (#16894)
- Modified: libhdfs3 2.3.7 -> 2.3.8
- Modified: jemalloc 5.2.1 -> 5.3.0  (#14871)
2023-02-19 19:49:27 +08:00
f0ab71aa84 [Thirdpart](lib) Add lib fast_float to replace std::from_chars() convert float/double (#16204) 2023-01-30 00:41:56 +08:00
b230b704d2 [Update](thirdparty) omit BUILD_TYPE for clucene, ignore other build type except RelWithDebInfo (#16076)
omit BUILD_TYPE for clucene, ignore other build type except RelWithDebInfo
2023-01-20 09:10:58 +08:00
3810727688 [chore](thirdparty) Update bitshuffle from 0.3.5 to 0.5.1 (#15993)
In order to use AVX512 instructions. See #15972
2023-01-17 23:46:11 +08:00
d75cf756c5 [fix](third-party) Pass search paths of dependencies to CLucene explicitly (#15959)
When building CLucene, CMake may find the wrong Boost and zlib. We should pass the search paths to the build command for CLucene explicitly to find the correct dependencies.
2023-01-16 17:12:40 +08:00
57098bf669 [fix](thirdparty) fix bug for build_thirdparty (#15910) 2023-01-14 21:02:59 +08:00
c88c6b3c41 [chore](build) Fix linkage errors on macOS (arm64) (#15922)
macOS with Apple Silicon chip doesn't support AVX2 instructions, we should build CLucene without AVX2 support.
2023-01-14 18:37:56 +08:00
be110ffaf6 [thirdparty](clucene) add clucene deps for doris inverted index (#15807)
As part of Inverted Index DSIP steps, we'd like to contribute our inverted index implementations step by step.
First of all we need to introduce clucene to doris thirdparty libs, because inverted index implementations are based on 
lucence API and index file format, also we add our features and performance improvements base on clucene, so we 
need to maintain the repo ourselves
2023-01-12 21:59:19 +08:00
870b5c44e6 [fix](compile) compile failed in Mac with clang14 (#15661)
HOW to reproduce?
Add export CMAKE_BUILD_TYPE=DEBUG in custom_env.sh. Then build thirdparty in MAC.

There are two problems:

build vectorscan with DEBUG type, will got unused-but-set-variable error:
doris/thirdparty/src/vectorscan-vectorscan-5.4.7/src/nfa/mcclellancompile.cpp:1485:13: error: variable 'total_daddy' set but not used [-Werror,-Wunused-but-set-variable]
u16 total_daddy = 0;
gflags will output libgflags_debug.a instead of libgflags.a while build with DEBUG type. Then we will got error can not find library gflags error.
To avoid these errors, we set CMAKE_BUILD_TYPE while build vectorscan and gflags.

Co-authored-by: cambyzju <zhuxiaoli01@baidu.com>
Co-authored-by: Adonis Ling <adonis0147@gmail.com>
2023-01-11 11:09:00 +08:00
5b10116eca [chore](thirdparty) fix bug that GSSAPI of libgsasl is disabled (#15753)
In #15037, I modified the build script of libgsasl to enable GSSAPI,
but it is still wrong, because the PATH does not include the `thirdparty/installed/bin`,
so when building libgsasl, it will report error:
`WARNING: MIT Kerberos krb5-config not found, disabling GSSAPI`

but `krb5-config` is in `thirdparty/installed/bin`.

Without GSSAPI, the libhdfs3 can not access hdfs with kerberos authentication.
2023-01-11 09:07:46 +08:00
f5b0f5e01a [chore](macOS) Don't build useless third-party stuff (#15763)
On macOS, we need some extra libraries to build the codebase,
therefore two packages were introduced to the project. They are `binutils` and `gettext`. 

It takes a lot of time to build these packages completely. This PR introduces a way to build the needed libraries
and other stuff are skipped to build. It can save the time to build the third-party libraries on macOS.
2023-01-11 00:20:37 +08:00
43c8e7b465 [chore](thirdparty) Support cleaning extracted data before building them (#15458)
Currently, we may fail to build the third-party libraries if we keep the outdated extracted data.

Considering the following scenario, Bob added patches to some libraries and Alice updates the codebase and builds 
the third-party libraries. If Alice kept the outdated extracted data, she should fail to build the third-party libraries 
because the patches are not applied due to the outdated `patched_marks`.

This PR introduces a way to clean the outdated data before building the third-party libraries.
2022-12-29 16:01:23 +08:00