feat(storage): support Jindo for OSS scan planning - #696
XiaoHongbo-Hope wants to merge 4 commits into
Conversation
|
Have you compared Jindo and OpenDAL? What are the differences? (benchmark) |
yes, I did a test, Jindo performance is a little better, but there is a lot of qps issue during my testing, so may need another testing. And, I think this PR is best to have, not very urgent now. Because qps issue is addressed in other way. |
10f72fe to
258cf5f
Compare
258cf5f to
74ead67
Compare
I updated the performance result in PR descrption. |
|
Requirement fit: SUPPORTED. Implementation: FINDINGS, reviewed at The opt-in planning backend has a concrete consumer in the merged apache/paimon#9124, and the supplied measurements demonstrate an end-to-end planning benefit for the two tested snapshots. Keeping the claim scoped to planning is appropriate: the reported data reads are slightly slower and request/QPS effects remain unmeasured. [P2] Preserve explicit SDK environment selection before Python auto-discovery. In I traced configuration, lazy initialization, paginated listing, ranged reads, read-only operations, and the FileIO callers. |
Purpose
Add an opt-in, read-only JindoSDK backend for OSS scans. OpenDAL remains the default. PyPaimon can select it for native planning through apache/paimon#9124.
Changes
storage-jindofeature, selected withfs.oss.impl=jindoBenchmark
Release-mode, partition-filtered scan planning on two fixed OSS-backed snapshots. This reads Paimon metadata and builds splits; it does not read data-file contents. Both backends ran on the same host with identical predicates, in reversed order and two independent processes per backend.
The file counts are references in the resulting scan plan, not individual data files opened or read. Both backends produced matching snapshot, split, file-count, and planned-byte results. Request count and peak OSS QPS were not measured.
Data read benchmark
Release-mode reads on two fixed OSS-backed snapshots. Planning completed before the timer started. Each backend ran in three independent processes on the same host, in alternating order.
Both backends produced matching row counts, Arrow sizes, and content checksums. Planning time is excluded. Network bytes and request count were not measured, so these results show end-to-end reader latency for these workloads, not raw OSS throughput.
Validation
storage-jindobuildsNotes
No JindoSDK binary is packaged. Selecting Jindo without the feature or a loadable SDK returns a configuration error. A FileIO configured with Jindo rejects writes, deletes, renames, and copies.