tsfile icon indicating copy to clipboard operation
tsfile copied to clipboard

BenchMark Result of TsFile for multi languages[C/C++, Java, Python]

Open ColinLeeo opened this issue 9 months ago • 4 comments

The total writing time includes both data preparation time and writing time. Writing throughput is calculated based on the total write duration.

Reading throughput is calculated based on the time taken to traverse all data.

The benchmark writes 1,000 Tablets, where each Tablet contains 2 tag columns, 5 field columns, and 10 devices - collectively representing 50 time series. Every time series within a Tablet comprises 1,000 timestamped data points. The measurement captures two key metrics: (1) the preparation time required to construct each Tablet, and (2) the execution time for individual write operations. This setup generates 50 million data points (1,000 Tablets × 50 series × 1,000 points) for comprehensive performance evaluation of the tsfile.

Unencoding without Compression

Total Writing Time(S) Writing Time(S) Reading Time(S) Writing throughput(p/s) Reading throughput(p/s)
Java 4.93 3.90 6.25 14185695 (1) 11183647 (1)
C++ 3.89 2.76 2.93 19340120 (1.36) 29310225 (2.62)
C 4.15 2.85 2.38 18377753 (1.29) 29310188 (2.62)
Python 49.71 4.45 3.26 1420103 (0.10) 21427594 (1.92)

Encoding and Compression

Total Writing Time(S) Writing Time(S) Reading Time(S) Writing throughput(p/s) Reading throughput(p/s)
Java 5.73 4.51 6.12 12199650 (1) 11432876 (1)
C++ 3.18 1.86 1.78 25247424 (2.07) 39109597 (3.42)
C 2.94 1.78 1.79 26047917 (2.13) 39086012 (3.42)
Python 48.70 3.86 2.22 1440989 (0.12) 31408786 (2.74)

Encoding without Compression

Total Writing Time(S) Writing Time(S) Reading Time(S) Writing throughput(p/s) Reading throughput(p/s)
Java 5.62 4.30 7.49 12438920 (1) 9345501 (1)
C++ 3.13 1.86 1.79 24996830 (2.01) 39061453 (4.18)
C 3.00 1.79 1.78 25684548 (2.06) 39286534 (4.18)
Python 48.68 4.32 3.13 1450102 (0.12) 22304804 (2.38)

Unencoding without Compression

Total Writing Time(S) Writing Time(S) Reading Time(S) Writing throughput(p/s) Reading throughput(p/s)
Java 4.58 3.65 5.91 15264433 (1) 11843198 (1)
C++ 3.92 2.7 2.41 19732150 (1.29) 28987463 (2.44)
C 3.99 2.77 2.37 18989472 (1.24) 29424313 (2.48)
Python 42.46 4.13 3.12 1502087 (0.10) 22411671 (1.89)

ColinLeeo avatar Apr 11 '25 06:04 ColinLeeo

Could you please also post an English version?

chrisdutz avatar Apr 11 '25 06:04 chrisdutz

Magic ... thanks ;-)

chrisdutz avatar Apr 11 '25 11:04 chrisdutz

Why does the Python edition of TsFile take so much longer to Total Writing Time(S) in benchmark?

hongzhi-gao avatar Apr 12 '25 09:04 hongzhi-gao

Because there is a Python impl of tablet.

Why does the Python edition of TsFile take so much longer to Total Writing Time(S) in benchmark?

ColinLeeo avatar Apr 13 '25 13:04 ColinLeeo