You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Runs [ClickBench](https://github.com/ClickHouse/ClickBench/) with instant-attach table
Builds ClickHouse in various configurations for use in further steps. You have to fix the builds that fail. Build logs often has enough information to fix the error, but you might have to reproduce the failure locally. The cmake options can be found in the build log, grepping for cmake. Use these options and follow the general build process
Normally this is the first check that is ran for a PR. It builds ClickHouse and runs most of stateless functional tests, omitting some. If it fails, further checks are not started until it is fixed. Look at the report to see which tests fail, then reproduce the failure locally as described here
Checks if new added or modified tests are flaky by running them repeatedly, in parallel, with more randomization. Functional tests are run 100 times with address sanitizer, and additional randomization of thread scheduling. Integrational tests are run up to 10 times. If at least once a new test has failed, or was too long, this check will be red. We don't allow flaky tests, read the doc
Runs stress tests on server version from last release and then tries to upgrade it to the version from the PR. It checks if the new server can successfully startup without any errors, crashes or sanitizer asserts
Sorry, this has been reverted because another reviewer (not me, I didn't read the code) has found an obvious race condition in the code. Let's fix this race condition and resubmit.
Also, grabbing a mutex in readExistingRowsCount() and reading the whole _row_exists column from disk while holding it seems like a very dangerous approach. E.g. it can be called from ReplicatedMergeTreeQueue::shouldExecuteLogEntry() via part->getExistingBytesOnDisk(); and can negatively affect replication queue processing.
I think the proper way is to save the count of "existing" rows in part's metadata when part is created similar to total row count.
@davenger saving count is definitely better way of dealing with this but it requires metadata modification one way or another.
BTW do you know which race condition Alexey is talking about?
@davenger Actually my initial thought was to add an existing_count.txt (just like count.txt) before finishing mutation
As for existing parts, create existing_count.txt on loading process.
Do you think it is a better solution?
@davenger Actually my initial thought was to add an existing_count.txt (just like count.txt) before finishing mutation As for existing parts, create existing_count.txt on loading process. Do you think it is a better solution?
Sorry, this has been reverted because another reviewer (not me, I didn't read the code) has found an obvious race condition in the code. Let's fix this race condition and resubmit.
@alexey-milovidov Could you please provide more information about the race condition in this PR?
@jewelzqiu, My colleagues said it is related to existing_rows_count.
@alexey-milovidov Thanks, I got it, looks like existing_rows_count can be read before lock acquired.
I have created another PR with different approach as discussed above in this PR: #58223
In the new PR existing_rows_count will only be set once before part became active
cc @yakov-olkhovskiy@davenger
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
can be testedAllows running workflows for external contributorspr-improvementPull request with some product improvements
6 participants
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
resolves #56728
Changelog category:
Changelog entry:
Consider lightweight deleted rows when selecting parts to merge if enabled