Uh oh!
There was an error while loading. Please reload this page.
HBASE-26055 Master local region "table" should be considered a system… - #3447
HBASE-26055 Master local region "table" should be considered a system…#3447z-york wants to merge 1 commit into
Conversation
z-york
commented
Jun 30, 2021
One open question with this one: Should we prevent a user from creating a "master" namespace? Currently createNamespace doesn't fail for system namespaces (because it's assumed that the namespace already exists). In this case, the namespace doesn't exist, but the master namespace prefix is being used for a system table. |
Apache-HBase
commented
Jun 30, 2021
🎊 +1 overall
This message was automatically generated. |
taklwu
commented
Jul 1, 2021
The master namespace logic looks good to me, but I have a minor question, do you see anywhere we have any procedure or cleanup logic delete the master namespace ?
I found below that the so, can you explain in what case the system namespaces in the meta table before it comes online would have the pre-existed namespaces? is it from a previous version ? |
Apache9
commented
Jul 1, 2021
Do you guys face any problems? The master local region is not a typical table, so in general it should not be conflict with any real tables or regions. You could have a user level table called master:local, no problem. |
Apache-HBase
commented
Jul 1, 2021
🎊 +1 overall
This message was automatically generated. |
Apache-HBase
commented
Jul 1, 2021
🎊 +1 overall
This message was automatically generated. |
I agree with @Apache9. I am kind of bit sceptical about making master local region as system table region. I might be missing something but does this improve any particular usecase? |
z-york
commented
Jul 6, 2021
@Apache9@virajjasani Sorry, I was out for the holiday. I understand that this is a special region and it does not have a corresponding table/namespace created for it. We do have an internal patch/feature that makes use of the system table designation (see HBASE-18477). We block writes/updates for user tables, but not system tables (HBASE-18775). Without this flag being set, writes to the master local region will be blocked with our feature. Originally the system table status was stored in the HRegionInfo, but now only the Table knows if it is a system table or not. I can add a hack/hardcode a check for the master local region. However, it still seems like this is technically a system region? In that case, why would we not denote it as a system region? It certainly is not in the user's domain, it is an internal HBase region. I'm fine with not adding this to the reserved NS list/restricting creating the NS, but to me it still seems like it is a bug that this "table" (really region) isn't being considered a system table. |
Apache9
commented
Jul 12, 2021
It is not a table actually... Neither a user table nor a system table... So I suggest we should have a way to bypass the newly added logic, and we set this flag or config when constructing the master local region. Thanks. |
wchevreuil
left a comment
There was a problem hiding this comment.
Any plans for the (very hypothetical) case a user namespace named "master" already exists on a cluster running a previous version then decides to upgrade to the version having this change?
saintstack
commented
Aug 16, 2021
Any resolution here. We going to add a flag to bypass new logic? |
Apache-HBase
commented
Jan 27, 2022
🎊 +1 overall
This message was automatically generated. |
Apache-HBase
commented
Jan 27, 2022
💔 -1 overall
This message was automatically generated. |
… table
The master local region is not a typical Table/Region, however, we should consider it a system table when creating the TableName so that if we call isSystemTable() it returns true.