-
Notifications
You must be signed in to change notification settings - Fork 3.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[refactor](jni) unified jni framework for jdbc catalog #26317
[refactor](jni) unified jni framework for jdbc catalog #26317
Conversation
clang-tidy review says "All clean, LGTM! 👍" |
321f2a8
to
195d61c
Compare
run buildall |
clang-tidy review says "All clean, LGTM! 👍" |
TeamCity be ut coverage result: |
(From new machine)TeamCity pipeline, clickbench performance test result: |
195d61c
to
51069d7
Compare
run buildall |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
clang-tidy made some suggestions
TeamCity be ut coverage result: |
(From new machine)TeamCity pipeline, clickbench performance test result: |
51069d7
to
129f3a1
Compare
run buildall |
TeamCity be ut coverage result: |
LGTM |
PR approved by at least one committer and no changes requested. |
PR approved by anyone and no changes requested. |
Please finish the |
(From new machine)TeamCity pipeline, clickbench performance test result: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
129f3a1
to
9fd3ecd
Compare
run buildall |
TeamCity be ut coverage result: |
run buildall |
TeamCity be ut coverage result: |
(From new machine)TeamCity pipeline, clickbench performance test result: |
646a9cb
to
52a9f0c
Compare
run buildall |
TeamCity be ut coverage result: |
(From new machine)TeamCity pipeline, clickbench performance test result: |
TPC-H test result on machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
|
PR approved by at least one committer and no changes requested. |
run buildall |
TPC-H test result on machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
|
TeamCity be ut coverage result: |
(From new machine)TeamCity pipeline, clickbench performance test result: |
run buildall |
TPC-H test result on machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
|
(From new machine)TeamCity pipeline, clickbench performance test result: |
52a9f0c
to
25c4924
Compare
run buildall |
TPC-H test result on machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
|
(From new machine)TeamCity pipeline, clickbench performance test result: |
TeamCity be ut coverage result: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
This commit overhauls the JDBC connector logic within our project, transitioning from the previous mechanism of fetching data through JNI calls for individual ResultSet items to a more efficient and unified approach using the VectorTable data structure.
This commit overhauls the JDBC connector logic within our project, transitioning from the previous mechanism of fetching data through JNI calls for individual ResultSet items to a more efficient and unified approach using the VectorTable data structure.
Proposed changes
Issue Number: close #xxx
This commit overhauls the JDBC connector logic within our project, transitioning from the previous mechanism of fetching data through JNI calls for individual
ResultSet
items to a more efficient and unified approach using theVectorTable
data structure.Key Changes:
ResultSet
into aList<Object[]>
. Then, our C++ code withinjdbc_connector
had to read data from each column separately, making JNI calls to Java for necessary data format conversions and alignment for memory access.VectorTable
memory address to directly fill theBlock
structure.Benefits:
VectorTable
significantly declutters the data fetching and conversion logic on the Backend (BE) side for JDBC Catalog. C++ code is now cleaner and more maintainable, with a clear separation of responsibilities.VectorTable
allows for faster data processing, better memory management, and overall improved read performance from JDBC sources.This refactor is part of our ongoing commitment to improve the architecture and performance of our system. By streamlining the data path from JDBC to our internal data structures, we expect to see more responsive data operations and lower latency in data handling tasks.
Impact:
The changes are expected to be backward compatible with existing JDBC data sources. However, thorough testing is recommended to ensure that all edge cases are handled correctly.
We encourage the community to test this new implementation and provide feedback on any issues or performance improvements observed.
Pending Tasks:
We aim to address this in future updates to further enhance the efficiency and performance of our system when dealing with these complex data types. By doing so, we anticipate reducing the overhead and potential bottlenecks associated with the current casting process, thus streamlining the entire data flow from JDBC to our internal representations.
Community involvement is crucial in this phase. We welcome contributions and suggestions on how to best approach this optimization for specialized data types. Your input will be invaluable in shaping the next iteration of our JDBC connector.
Further comments
If this is a relatively large or complex change, kick off the discussion at dev@doris.apache.org by explaining why you chose the solution you did and what alternatives you considered, etc...