Uh oh!
There was an error while loading. Please reload this page.
HBASE-26867 Introduce a FlushProcedure - #5256
Conversation
Apache-HBase
commented
May 27, 2023
💔 -1 overall
This message was automatically generated. |
Apache-HBase
commented
May 27, 2023
🎊 +1 overall
This message was automatically generated. |
Apache-HBase
commented
May 27, 2023
🎊 +1 overall
This message was automatically generated. |
Apache9
left a comment
There was a problem hiding this comment.
Overall LGTM.
The only concern is about how we implement the procedure lock.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
| FlushLifeCycleTracker.DUMMY); | ||
| } | ||
| if (res.getResult() == HRegion.FlushResult.Result.CANNOT_FLUSH) { | ||
| region.waitForFlushes(); |
There was a problem hiding this comment.
Should we wait here? Or just fail the remote procedure call, and let the master schedule again?
There was a problem hiding this comment.
I think you are right, the current implementation may stuck the flush executor, which is not good. It might be a better idea to fail fast and try again. Let me fix this. Thanks Duo.
| if (columnFamily == null) { | ||
| res = region.flush(true); | ||
| } else { | ||
| res = region.flushcache(Collections.singletonList(columnFamily), false, |
There was a problem hiding this comment.
Do we want to support flush several families at once? Do we have this support in the old flush procedure?
There was a problem hiding this comment.
Yes. The flush procedure v1 supports flushing the specified column family on all regions. So I want to make flush procedure v2 have the same ability. :)
There was a problem hiding this comment.
I mean do we need to add support to pass multiple column families here? Not only one.
Apache-HBase
commented
Jun 3, 2023
💔 -1 overall
This message was automatically generated. |
2 similar comments
Apache-HBase
commented
Jun 3, 2023
💔 -1 overall
This message was automatically generated. |
Apache-HBase
commented
Jun 3, 2023
💔 -1 overall
This message was automatically generated. |
Apache-HBase
commented
Jun 3, 2023
💔 -1 overall
This message was automatically generated. |
Apache-HBase
commented
Jun 3, 2023
🎊 +1 overall
This message was automatically generated. |
Apache-HBase
commented
Jun 3, 2023
🎊 +1 overall
This message was automatically generated. |
Apache-HBase
commented
Jun 4, 2023
💔 -1 overall
This message was automatically generated. |
Apache-HBase
commented
Jun 4, 2023
🎊 +1 overall
This message was automatically generated. |
Apache-HBase
commented
Jun 4, 2023
💔 -1 overall
This message was automatically generated. |
Apache-HBase
commented
Jun 4, 2023
🎊 +1 overall
This message was automatically generated. |
Apache-HBase
commented
Jun 4, 2023
💔 -1 overall
This message was automatically generated. |
Apache-HBase
commented
Jun 4, 2023
🎊 +1 overall
This message was automatically generated. |
Apache-HBase
commented
Jun 4, 2023
🎊 +1 overall
This message was automatically generated. |
Apache-HBase
commented
Jun 4, 2023
🎊 +1 overall
This message was automatically generated. |
Apache-HBase
commented
Jun 4, 2023
🎊 +1 overall
This message was automatically generated. |
| throw new UnsupportedOperationException("unhandled state=" + state); | ||
| } | ||
| } catch (Exception e) { | ||
| setFailure("master-flush-table", e); |
There was a problem hiding this comment.
What could casue the procedure failure? Since we do not support rollback, I do not think we can mark this procedure as failure after entering the fllush regions state...
There was a problem hiding this comment.
Thank you for pointing this out Duo, it is necessary that we adjust it after we make the FlushTableProcedure not support rollback.
My original thought was this, when we are in the state FLUSH_TABLE_PREPARE, we need to confirm that the state of the table is Online, which may require an RPC to access the meta table, because the TableStateManager loads the state of the table lazily. if the request fails, an exception may be thrown, so I originally thought that if the request fails, then just roll back the procedure.
Since we do not support rollback now, let me fix this.
Apache-HBase
commented
Jun 26, 2023
🎊 +1 overall
This message was automatically generated. |
Apache-HBase
commented
Jun 26, 2023
💔 -1 overall
This message was automatically generated. |
Apache-HBase
commented
Jun 26, 2023
💔 -1 overall
This message was automatically generated. |
Uh oh!
There was an error while loading. Please reload this page.
| if (columnFamily == null) { | ||
| res = region.flush(true); | ||
| } else { | ||
| res = region.flushcache(Collections.singletonList(columnFamily), false, |
There was a problem hiding this comment.
I mean do we need to add support to pass multiple column families here? Not only one.
frostruan
commented
Jun 28, 2023
OK. Let me improve this to support flushing multiple column families. Thanks Duo. |
Apache9
commented
Jul 5, 2023
Any updates here? I think we are very close to get this in. Thanks. |
Apache-HBase
commented
Jul 7, 2023
🎊 +1 overall
This message was automatically generated. |
Apache-HBase
commented
Jul 7, 2023
🎊 +1 overall
This message was automatically generated. |
Apache-HBase
commented
Jul 31, 2023
💔 -1 overall
This message was automatically generated. |
Apache-HBase
commented
Jul 31, 2023
💔 -1 overall
This message was automatically generated. |
Apache-HBase
commented
Jul 31, 2023
💔 -1 overall
This message was automatically generated. |
Apache-HBase
commented
Aug 5, 2023
🎊 +1 overall
This message was automatically generated. |
Apache-HBase
commented
Aug 5, 2023
🎊 +1 overall
This message was automatically generated. |
Apache-HBase
commented
Aug 5, 2023
💔 -1 overall
This message was automatically generated. |
Apache9
commented
Aug 13, 2023
Triggered another build to see if we can get an all green. Overall LGTM. Thanks @frostruan for your patience. |
Apache-HBase
commented
Aug 13, 2023
💔 -1 overall
This message was automatically generated. |
Apache-HBase
commented
Aug 13, 2023
🎊 +1 overall
This message was automatically generated. |
Apache-HBase
commented
Aug 13, 2023
🎊 +1 overall
This message was automatically generated. |
frostruan
commented
Aug 14, 2023
Thanks Duo for still following this ! @Apache9 The spotless problem looks irrelevant. Should we trigger another build ? |
Apache9
commented
Aug 14, 2023
It is not related. But please fix the javac warning? We missed an Override annotation. Thanks. |
frostruan
commented
Aug 14, 2023
A new commit has been added. Let's wait for the UT results. REALLY appreciate your help Duo. @Apache9 |
Apache-HBase
commented
Aug 14, 2023
🎊 +1 overall
This message was automatically generated. |
Apache-HBase
commented
Aug 14, 2023
🎊 +1 overall
This message was automatically generated. |
Apache-HBase
commented
Aug 14, 2023
🎊 +1 overall
This message was automatically generated. |
Co-authored-by: huiruan <876107431@qq.com> Signed-off-by: Duo Zhang <zhangduo@apache.org> (cherry picked from commit 20c9e4b)
| ForeignExceptionDispatcher monitor = new ForeignExceptionDispatcher(desc.getInstance()); | ||
| HBaseProtos.NameStringPair family = null; |
There was a problem hiding this comment.
It looks like this segment was missed in the backport to branch-2. I noticed because I'm backporting HBASE-28187 / #5692.
@frostruan@Apache9 is there a semantic difference between the value of family/families between master/branch-3 and branch-2? Or can I apply this rename without concern? Thanks.
There was a problem hiding this comment.
I have not done an audit of the PRs for master vs. branch-2, there may be other missing patch segments.
There was a problem hiding this comment.
From the perspective of program correctness, there is no difference between family and families. From a semantic point of view, this string supports multiple column family names separated by commas, such as "cf1,cf2, cf3", so I think families is more appropriate here. In fact, in RegionServerFlushTableProcedureManager, this parameter is also named families.So I think you can rename it safely. Thanks.
No description provided.