-
Notifications
You must be signed in to change notification settings - Fork 590
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
feat(sink): enhance more sinks to support commit_checkpoint_interval
#17383
Comments
Similar Issues #17223 |
We can run some benckmarks to test how the throughput will be affected when we try to commit more things once in a batch. Can test bigqueyr and clickhouse first. cc @xxhZs |
The same issue also needs to be considered on the file sink side. Currently file sink can only write file when checkpoint comes. Although Flink will also force flush once when the checkpoint arrives, its checkpoint frequency is very low so the impact is not significant. For this type of sink, decoupling the sink is equivalent to batch writing files in some way.
|
After running the bench, I found that the throughput on and off is basically the same |
And this pr also has a bench test on sr.#16816 |
@xxhZs Could you paste some concrete number about the throughputs and the experiment settings? |
we use sink bench , and test 300s, the result is : clickhouse: And I found that our default bigquery.max_batch_rows used to be too small. After resizing it to a larger size, the throughput was much higher |
Interesting. What's the new size, and how much does the throughput increase? If the throughput can be greatly increased when we just simply increase this batch size, I suspect that most time is wasted on waiting for the response from response stream. Can you try asynchronously waiting for response from stream and do the truncation, in this way we won't be blocked by waiting for the response and may get better throughput. Besides, currently we create a And what's the number of parallelisms in the test? |
More detailed bench for bigquery sinks |
Tracked in #17095 |
Is your feature request related to a problem? Please describe.
Many OLAP systems including BigQuery, ClickHouse, Iceberg, etc., perform poorly when inserting data in small batches. Currently, constrained by our checkpointing interval, RisingWave can only batch data within 1 second. In cases with tens of parallelism, this approach results in poor performance.
Describe the solution you'd like
In Iceberg Sink we have introduced an option
commit_checkpoint_interval
.risingwave/src/connector/src/sink/iceberg/mod.rs
Lines 131 to 133 in 378a04a
Based on log store, it can batch data in a wider range, crossing multiple checkpoint epoches.
Describe alternatives you've considered
NA
Additional context
Today I met a case of poor performance in BigQuery Sink. We may start from this.
The text was updated successfully, but these errors were encountered: