-
Notifications
You must be signed in to change notification settings - Fork 3.3k
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
HBASE-26938 Introduce a StoreFileWriterCreationTracker #4350
Conversation
💔 -1 overall
This message was automatically generated. |
💔 -1 overall
This message was automatically generated. |
💔 -1 overall
This message was automatically generated. |
🎊 +1 overall
This message was automatically generated. |
🎊 +1 overall
This message was automatically generated. |
🎊 +1 overall
This message was automatically generated. |
🎊 +1 overall
This message was automatically generated. |
🎊 +1 overall
This message was automatically generated. |
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.
I was able to reproduce this locally with hbase pe randomWrite
when setting the max filesize for the table down to 1GB to force a lot of splits with multiple compaction threads. Reran the same experiment and did not have the same problem with this patch. Looks like an effective fix.
It looks like we might be losing some test coverage in the compaction progress, but I didn't dig into the code to see if we do have coverage elsewhere for it. Would be good to make sure we have something, but that can be done later to fix this issue first. Thanks Duo.
* {@link BrokenStoreFileCleaner} to prevent deleting the these files as they are not present in | ||
* SFT yet. | ||
*/ | ||
Set<Path> getWrittenStoreFiles() { |
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.
Set<Path> getWrittenStoreFiles() { | |
Set<Path> getStoreFilesBeingCreated() { |
Maybe this instead? Trying to reflect in the name that they are still being written to. "getWrittenStoreFiles" could be read as "they were previously written to" not "actively being written to".
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.
Or …filesBeingWritten, which echos Hadoop HDFS terminology.
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.
I like filesBeingWritten. Let me change the naming. Thanks both for helping!
// see if CompactionProgress has done its thing on at least one store | ||
int storeCount = 0; | ||
for (HStore store : r.getStores()) { | ||
CompactionProgress progress = store.getCompactionProgress(); |
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.
Do we have test coverage for getProgress()
elsewhere?
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.
This was not the appropriate place to test progress reporting in the first place, and progress reporting was broken anyway because it was not MT safe. I do think we should add coverage for it but it should be a follow up issue that focuses on the lack of coverage (it’s always been an issue imho)
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.
We can file another issue for improving the test for compaction progress.
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.
Confirmed the fix with application of this patch and test with the scenario that revealed the issue.
🎊 +1 overall
This message was automatically generated. |
🎊 +1 overall
This message was automatically generated. |
💔 -1 overall
This message was automatically generated. |
Test failures are not related. Let me merge. |
…pache#4350) Introduce a StoreFileWriterCreationTracker to track the store files being written Signed-off-by: Josh Elser <elserj@apache.org> Signed-off-by: Andrew Purtell <apurtell@apache.org> (cherry picked from commit 48c4a46) Change-Id: Ie824b762d4f729340c673cc68699dff286eedf16
No description provided.