[jira] [Commented] (HBASE-26969) Eliminate MOB renames when SFT is enabled

2022-08-20 Thread Hudson (Jira)


[ 
https://issues.apache.org/jira/browse/HBASE-26969?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17582371#comment-17582371
 ] 

Hudson commented on HBASE-26969:


Results for branch branch-2.5
[build #190 on 
builds.a.o|https://ci-hbase.apache.org/job/HBase%20Nightly/job/branch-2.5/190/]:
 (/) *{color:green}+1 overall{color}*

details (if available):

(/) {color:green}+1 general checks{color}
-- For more information [see general 
report|https://ci-hbase.apache.org/job/HBase%20Nightly/job/branch-2.5/190/General_20Nightly_20Build_20Report/]


(/) {color:green}+1 jdk8 hadoop2 checks{color}
-- For more information [see jdk8 (hadoop2) 
report|https://ci-hbase.apache.org/job/HBase%20Nightly/job/branch-2.5/190/JDK8_20Nightly_20Build_20Report_20_28Hadoop2_29/]


(/) {color:green}+1 jdk8 hadoop3 checks{color}
-- For more information [see jdk8 (hadoop3) 
report|https://ci-hbase.apache.org/job/HBase%20Nightly/job/branch-2.5/190/JDK8_20Nightly_20Build_20Report_20_28Hadoop3_29/]


(/) {color:green}+1 jdk11 hadoop3 checks{color}
-- For more information [see jdk11 
report|https://ci-hbase.apache.org/job/HBase%20Nightly/job/branch-2.5/190/JDK11_20Nightly_20Build_20Report_20_28Hadoop3_29/]


(/) {color:green}+1 source release artifact{color}
-- See build output for details.


(/) {color:green}+1 client integration test{color}


> Eliminate MOB renames when SFT is enabled
> -
>
> Key: HBASE-26969
> URL: https://issues.apache.org/jira/browse/HBASE-26969
> Project: HBase
>  Issue Type: Sub-task
>  Components: mob
>Affects Versions: 2.5.0, 3.0.0-alpha-3
>Reporter: Szabolcs Bukros
>Assignee: Szabolcs Bukros
>Priority: Major
> Fix For: 2.5.0, 3.0.0-alpha-4
>
>
> MOB file compaction and flush still relies on renames even when SFT is 
> enabled.
> My proposed changes are:
>  * when requireWritingToTmpDirFirst is false during mob flush/compact instead 
> of using the temp writer we should create a different writer using a 
> {color:#00}StoreFileWriterCreationTracker that writes directly to the mob 
> store folder{color}
>  * {color:#00}these StoreFileWriterCreationTracker should be stored in 
> the MobStore. This would requires us to extend MobStore with a createWriter 
> and a finalizeWriter method to handle this{color}
>  * {color:#00}refactor {color}MobFileCleanerChore to run on the RS 
> instead on Master to allow access to the 
> {color:#00}StoreFileWriterCreationTracker{color}s to make sure the 
> currently written files are not cleaned up



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (HBASE-26969) Eliminate MOB renames when SFT is enabled

2022-08-19 Thread Hudson (Jira)


[ 
https://issues.apache.org/jira/browse/HBASE-26969?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17582129#comment-17582129
 ] 

Hudson commented on HBASE-26969:


Results for branch branch-2
[build #621 on 
builds.a.o|https://ci-hbase.apache.org/job/HBase%20Nightly/job/branch-2/621/]: 
(/) *{color:green}+1 overall{color}*

details (if available):

(/) {color:green}+1 general checks{color}
-- For more information [see general 
report|https://ci-hbase.apache.org/job/HBase%20Nightly/job/branch-2/621/General_20Nightly_20Build_20Report/]


(/) {color:green}+1 jdk8 hadoop2 checks{color}
-- For more information [see jdk8 (hadoop2) 
report|https://ci-hbase.apache.org/job/HBase%20Nightly/job/branch-2/621/JDK8_20Nightly_20Build_20Report_20_28Hadoop2_29/]


(/) {color:green}+1 jdk8 hadoop3 checks{color}
-- For more information [see jdk8 (hadoop3) 
report|https://ci-hbase.apache.org/job/HBase%20Nightly/job/branch-2/621/JDK8_20Nightly_20Build_20Report_20_28Hadoop3_29/]


(/) {color:green}+1 jdk11 hadoop3 checks{color}
-- For more information [see jdk11 
report|https://ci-hbase.apache.org/job/HBase%20Nightly/job/branch-2/621/JDK11_20Nightly_20Build_20Report_20_28Hadoop3_29/]


(/) {color:green}+1 source release artifact{color}
-- See build output for details.


(/) {color:green}+1 client integration test{color}


> Eliminate MOB renames when SFT is enabled
> -
>
> Key: HBASE-26969
> URL: https://issues.apache.org/jira/browse/HBASE-26969
> Project: HBase
>  Issue Type: Sub-task
>  Components: mob
>Affects Versions: 2.5.0, 3.0.0-alpha-3
>Reporter: Szabolcs Bukros
>Assignee: Szabolcs Bukros
>Priority: Major
> Fix For: 2.5.0, 3.0.0-alpha-4
>
>
> MOB file compaction and flush still relies on renames even when SFT is 
> enabled.
> My proposed changes are:
>  * when requireWritingToTmpDirFirst is false during mob flush/compact instead 
> of using the temp writer we should create a different writer using a 
> {color:#00}StoreFileWriterCreationTracker that writes directly to the mob 
> store folder{color}
>  * {color:#00}these StoreFileWriterCreationTracker should be stored in 
> the MobStore. This would requires us to extend MobStore with a createWriter 
> and a finalizeWriter method to handle this{color}
>  * {color:#00}refactor {color}MobFileCleanerChore to run on the RS 
> instead on Master to allow access to the 
> {color:#00}StoreFileWriterCreationTracker{color}s to make sure the 
> currently written files are not cleaned up



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (HBASE-26969) Eliminate MOB renames when SFT is enabled

2022-08-19 Thread Peter Somogyi (Jira)


[ 
https://issues.apache.org/jira/browse/HBASE-26969?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17581779#comment-17581779
 ] 

Peter Somogyi commented on HBASE-26969:
---

{quote}HBASE-25970{color:#172b4d} is another dependency I missed in 
{color}HBASE-27154{color:#172b4d}. To shorten the review cycles instead of 
backporting it separately I included the changes it contained in this PR. 
Please let me know if that would not be acceptable and I prepare a separate PR 
for that backport.{color}
{quote}
I've split this up into 2 commits so it will be easier to track in Jira.

> Eliminate MOB renames when SFT is enabled
> -
>
> Key: HBASE-26969
> URL: https://issues.apache.org/jira/browse/HBASE-26969
> Project: HBase
>  Issue Type: Sub-task
>  Components: mob
>Affects Versions: 2.5.0, 3.0.0-alpha-3
>Reporter: Szabolcs Bukros
>Assignee: Szabolcs Bukros
>Priority: Major
> Fix For: 2.6.0, 2.5.1, 3.0.0-alpha-4
>
>
> MOB file compaction and flush still relies on renames even when SFT is 
> enabled.
> My proposed changes are:
>  * when requireWritingToTmpDirFirst is false during mob flush/compact instead 
> of using the temp writer we should create a different writer using a 
> {color:#00}StoreFileWriterCreationTracker that writes directly to the mob 
> store folder{color}
>  * {color:#00}these StoreFileWriterCreationTracker should be stored in 
> the MobStore. This would requires us to extend MobStore with a createWriter 
> and a finalizeWriter method to handle this{color}
>  * {color:#00}refactor {color}MobFileCleanerChore to run on the RS 
> instead on Master to allow access to the 
> {color:#00}StoreFileWriterCreationTracker{color}s to make sure the 
> currently written files are not cleaned up



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (HBASE-26969) Eliminate MOB renames when SFT is enabled

2022-08-17 Thread Szabolcs Bukros (Jira)


[ 
https://issues.apache.org/jira/browse/HBASE-26969?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17580779#comment-17580779
 ] 

Szabolcs Bukros commented on HBASE-26969:
-

[~apurtell] [~huaxiangsun] Please find #4712 with the branch-2 backport.
Please note I made some additional changes:
 *   [#4617|https://github.com/apache/hbase/pull/4617] left 2 test classes in 
the code that the original commit deleted and I had to delete them here.
 * HBASE-25970 is another dependency I missed in HBASE-27154. To shorten the 
review cycles instead of backporting it separately I included the changes it 
contained in this PR. Please let me know if that would not be acceptable and I 
prepare a separate PR for that backport.

> Eliminate MOB renames when SFT is enabled
> -
>
> Key: HBASE-26969
> URL: https://issues.apache.org/jira/browse/HBASE-26969
> Project: HBase
>  Issue Type: Sub-task
>  Components: mob
>Affects Versions: 2.5.0, 3.0.0-alpha-3
>Reporter: Szabolcs Bukros
>Assignee: Szabolcs Bukros
>Priority: Major
> Fix For: 2.5.0, 3.0.0-alpha-4
>
>
> MOB file compaction and flush still relies on renames even when SFT is 
> enabled.
> My proposed changes are:
>  * when requireWritingToTmpDirFirst is false during mob flush/compact instead 
> of using the temp writer we should create a different writer using a 
> {color:#00}StoreFileWriterCreationTracker that writes directly to the mob 
> store folder{color}
>  * {color:#00}these StoreFileWriterCreationTracker should be stored in 
> the MobStore. This would requires us to extend MobStore with a createWriter 
> and a finalizeWriter method to handle this{color}
>  * {color:#00}refactor {color}MobFileCleanerChore to run on the RS 
> instead on Master to allow access to the 
> {color:#00}StoreFileWriterCreationTracker{color}s to make sure the 
> currently written files are not cleaned up



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (HBASE-26969) Eliminate MOB renames when SFT is enabled

2022-08-12 Thread Huaxiang Sun (Jira)


[ 
https://issues.apache.org/jira/browse/HBASE-26969?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17579144#comment-17579144
 ] 

Huaxiang Sun commented on HBASE-26969:
--

We are planing to spin 2.5.0 RC next Monday, [~bszabolcs] , do you think it can 
be merged by then? Otherwise, it will push out o 2.5.1.

> Eliminate MOB renames when SFT is enabled
> -
>
> Key: HBASE-26969
> URL: https://issues.apache.org/jira/browse/HBASE-26969
> Project: HBase
>  Issue Type: Sub-task
>  Components: mob
>Affects Versions: 2.5.0, 3.0.0-alpha-3
>Reporter: Szabolcs Bukros
>Assignee: Szabolcs Bukros
>Priority: Major
> Fix For: 2.5.0, 3.0.0-alpha-4
>
>
> MOB file compaction and flush still relies on renames even when SFT is 
> enabled.
> My proposed changes are:
>  * when requireWritingToTmpDirFirst is false during mob flush/compact instead 
> of using the temp writer we should create a different writer using a 
> {color:#00}StoreFileWriterCreationTracker that writes directly to the mob 
> store folder{color}
>  * {color:#00}these StoreFileWriterCreationTracker should be stored in 
> the MobStore. This would requires us to extend MobStore with a createWriter 
> and a finalizeWriter method to handle this{color}
>  * {color:#00}refactor {color}MobFileCleanerChore to run on the RS 
> instead on Master to allow access to the 
> {color:#00}StoreFileWriterCreationTracker{color}s to make sure the 
> currently written files are not cleaned up



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (HBASE-26969) Eliminate MOB renames when SFT is enabled

2022-07-12 Thread Andrew Kyle Purtell (Jira)


[ 
https://issues.apache.org/jira/browse/HBASE-26969?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17565961#comment-17565961
 ] 

Andrew Kyle Purtell commented on HBASE-26969:
-

Happy to help on HBASE-27154 [~bszabolcs].

> Eliminate MOB renames when SFT is enabled
> -
>
> Key: HBASE-26969
> URL: https://issues.apache.org/jira/browse/HBASE-26969
> Project: HBase
>  Issue Type: Sub-task
>  Components: mob
>Affects Versions: 2.5.0, 3.0.0-alpha-3
>Reporter: Szabolcs Bukros
>Assignee: Szabolcs Bukros
>Priority: Major
> Fix For: 2.6.0, 3.0.0-alpha-4
>
>
> MOB file compaction and flush still relies on renames even when SFT is 
> enabled.
> My proposed changes are:
>  * when requireWritingToTmpDirFirst is false during mob flush/compact instead 
> of using the temp writer we should create a different writer using a 
> {color:#00}StoreFileWriterCreationTracker that writes directly to the mob 
> store folder{color}
>  * {color:#00}these StoreFileWriterCreationTracker should be stored in 
> the MobStore. This would requires us to extend MobStore with a createWriter 
> and a finalizeWriter method to handle this{color}
>  * {color:#00}refactor {color}MobFileCleanerChore to run on the RS 
> instead on Master to allow access to the 
> {color:#00}StoreFileWriterCreationTracker{color}s to make sure the 
> currently written files are not cleaned up



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (HBASE-26969) Eliminate MOB renames when SFT is enabled

2022-07-12 Thread Szabolcs Bukros (Jira)


[ 
https://issues.apache.org/jira/browse/HBASE-26969?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17565318#comment-17565318
 ] 

Szabolcs Bukros commented on HBASE-26969:
-

[~apurtell] branch-2 misses some very important MOB related commits that this 
change relies on and we have to backport those first. It's tracked in 
HBASE-27154. The first and most complex backport is done, the rest should be 
easier but I have deadlines coming up and will not be able to continue this for 
a few weeks. If you could do the rest or find someone to do the rest of the 
missing commits, I would be happy to prepare a backport for this commit though.

> Eliminate MOB renames when SFT is enabled
> -
>
> Key: HBASE-26969
> URL: https://issues.apache.org/jira/browse/HBASE-26969
> Project: HBase
>  Issue Type: Sub-task
>  Components: mob
>Affects Versions: 2.5.0, 3.0.0-alpha-3
>Reporter: Szabolcs Bukros
>Assignee: Szabolcs Bukros
>Priority: Major
> Fix For: 2.6.0, 3.0.0-alpha-4
>
>
> MOB file compaction and flush still relies on renames even when SFT is 
> enabled.
> My proposed changes are:
>  * when requireWritingToTmpDirFirst is false during mob flush/compact instead 
> of using the temp writer we should create a different writer using a 
> {color:#00}StoreFileWriterCreationTracker that writes directly to the mob 
> store folder{color}
>  * {color:#00}these StoreFileWriterCreationTracker should be stored in 
> the MobStore. This would requires us to extend MobStore with a createWriter 
> and a finalizeWriter method to handle this{color}
>  * {color:#00}refactor {color}MobFileCleanerChore to run on the RS 
> instead on Master to allow access to the 
> {color:#00}StoreFileWriterCreationTracker{color}s to make sure the 
> currently written files are not cleaned up



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (HBASE-26969) Eliminate MOB renames when SFT is enabled

2022-07-11 Thread Andrew Kyle Purtell (Jira)


[ 
https://issues.apache.org/jira/browse/HBASE-26969?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17565203#comment-17565203
 ] 

Andrew Kyle Purtell commented on HBASE-26969:
-

This can still make 2.5 if a branch-2 patch lands in the next couple of days.

> Eliminate MOB renames when SFT is enabled
> -
>
> Key: HBASE-26969
> URL: https://issues.apache.org/jira/browse/HBASE-26969
> Project: HBase
>  Issue Type: Sub-task
>  Components: mob
>Affects Versions: 2.5.0, 3.0.0-alpha-3
>Reporter: Szabolcs Bukros
>Assignee: Szabolcs Bukros
>Priority: Major
> Fix For: 2.6.0, 3.0.0-alpha-4
>
>
> MOB file compaction and flush still relies on renames even when SFT is 
> enabled.
> My proposed changes are:
>  * when requireWritingToTmpDirFirst is false during mob flush/compact instead 
> of using the temp writer we should create a different writer using a 
> {color:#00}StoreFileWriterCreationTracker that writes directly to the mob 
> store folder{color}
>  * {color:#00}these StoreFileWriterCreationTracker should be stored in 
> the MobStore. This would requires us to extend MobStore with a createWriter 
> and a finalizeWriter method to handle this{color}
>  * {color:#00}refactor {color}MobFileCleanerChore to run on the RS 
> instead on Master to allow access to the 
> {color:#00}StoreFileWriterCreationTracker{color}s to make sure the 
> currently written files are not cleaned up



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (HBASE-26969) Eliminate MOB renames when SFT is enabled

2022-06-22 Thread Hudson (Jira)


[ 
https://issues.apache.org/jira/browse/HBASE-26969?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17557623#comment-17557623
 ] 

Hudson commented on HBASE-26969:


Results for branch master
[build #617 on 
builds.a.o|https://ci-hbase.apache.org/job/HBase%20Nightly/job/master/617/]: 
(/) *{color:green}+1 overall{color}*

details (if available):

(/) {color:green}+1 general checks{color}
-- For more information [see general 
report|https://ci-hbase.apache.org/job/HBase%20Nightly/job/master/617/General_20Nightly_20Build_20Report/]






(/) {color:green}+1 jdk8 hadoop3 checks{color}
-- For more information [see jdk8 (hadoop3) 
report|https://ci-hbase.apache.org/job/HBase%20Nightly/job/master/617/JDK8_20Nightly_20Build_20Report_20_28Hadoop3_29/]


(/) {color:green}+1 jdk11 hadoop3 checks{color}
-- For more information [see jdk11 
report|https://ci-hbase.apache.org/job/HBase%20Nightly/job/master/617/JDK11_20Nightly_20Build_20Report_20_28Hadoop3_29/]


(/) {color:green}+1 source release artifact{color}
-- See build output for details.


(/) {color:green}+1 client integration test{color}


> Eliminate MOB renames when SFT is enabled
> -
>
> Key: HBASE-26969
> URL: https://issues.apache.org/jira/browse/HBASE-26969
> Project: HBase
>  Issue Type: Sub-task
>  Components: mob
>Affects Versions: 2.5.0, 3.0.0-alpha-3
>Reporter: Szabolcs Bukros
>Assignee: Szabolcs Bukros
>Priority: Major
> Fix For: 2.6.0, 3.0.0-alpha-4
>
>
> MOB file compaction and flush still relies on renames even when SFT is 
> enabled.
> My proposed changes are:
>  * when requireWritingToTmpDirFirst is false during mob flush/compact instead 
> of using the temp writer we should create a different writer using a 
> {color:#00}StoreFileWriterCreationTracker that writes directly to the mob 
> store folder{color}
>  * {color:#00}these StoreFileWriterCreationTracker should be stored in 
> the MobStore. This would requires us to extend MobStore with a createWriter 
> and a finalizeWriter method to handle this{color}
>  * {color:#00}refactor {color}MobFileCleanerChore to run on the RS 
> instead on Master to allow access to the 
> {color:#00}StoreFileWriterCreationTracker{color}s to make sure the 
> currently written files are not cleaned up



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Commented] (HBASE-26969) Eliminate MOB renames when SFT is enabled

2022-06-21 Thread Wellington Chevreuil (Jira)


[ 
https://issues.apache.org/jira/browse/HBASE-26969?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17556751#comment-17556751
 ] 

Wellington Chevreuil commented on HBASE-26969:
--

Thanks for your patience in answering/addressing all my questions here, 
[~bszabolcs]. I had now merged this PR into master branch. Tried to cherry-pick 
into branch-2, bug got a lot of conflicts. Mind push another PR for branch-2?

> Eliminate MOB renames when SFT is enabled
> -
>
> Key: HBASE-26969
> URL: https://issues.apache.org/jira/browse/HBASE-26969
> Project: HBase
>  Issue Type: Sub-task
>  Components: mob
>Affects Versions: 2.5.0, 3.0.0-alpha-3
>Reporter: Szabolcs Bukros
>Assignee: Szabolcs Bukros
>Priority: Major
> Fix For: 2.6.0, 3.0.0-alpha-4
>
>
> MOB file compaction and flush still relies on renames even when SFT is 
> enabled.
> My proposed changes are:
>  * when requireWritingToTmpDirFirst is false during mob flush/compact instead 
> of using the temp writer we should create a different writer using a 
> {color:#00}StoreFileWriterCreationTracker that writes directly to the mob 
> store folder{color}
>  * {color:#00}these StoreFileWriterCreationTracker should be stored in 
> the MobStore. This would requires us to extend MobStore with a createWriter 
> and a finalizeWriter method to handle this{color}
>  * {color:#00}refactor {color}MobFileCleanerChore to run on the RS 
> instead on Master to allow access to the 
> {color:#00}StoreFileWriterCreationTracker{color}s to make sure the 
> currently written files are not cleaned up



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Commented] (HBASE-26969) Eliminate MOB renames when SFT is enabled

2022-05-31 Thread Szabolcs Bukros (Jira)


[ 
https://issues.apache.org/jira/browse/HBASE-26969?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17544550#comment-17544550
 ] 

Szabolcs Bukros commented on HBASE-26969:
-

{quote}
So p1 and p2 can have references to p even when p is no longer in meta?
{quote}

Not exactly. In this scenario p no longer exists in our outside the meta. It is 
not referenced either. The mobfile "_p" exists and is 
referenced from p1 and p2. It was created by p but it exists outside the data 
folder in an entirely different structure under /hbase/mobdir. It is not and 
never was part of p. It was only referenced from p.

 

> Eliminate MOB renames when SFT is enabled
> -
>
> Key: HBASE-26969
> URL: https://issues.apache.org/jira/browse/HBASE-26969
> Project: HBase
>  Issue Type: Sub-task
>  Components: mob
>Affects Versions: 2.5.0, 3.0.0-alpha-3
>Reporter: Szabolcs Bukros
>Assignee: Szabolcs Bukros
>Priority: Major
> Fix For: 2.6.0, 3.0.0-alpha-3
>
>
> MOB file compaction and flush still relies on renames even when SFT is 
> enabled.
> My proposed changes are:
>  * when requireWritingToTmpDirFirst is false during mob flush/compact instead 
> of using the temp writer we should create a different writer using a 
> {color:#00}StoreFileWriterCreationTracker that writes directly to the mob 
> store folder{color}
>  * {color:#00}these StoreFileWriterCreationTracker should be stored in 
> the MobStore. This would requires us to extend MobStore with a createWriter 
> and a finalizeWriter method to handle this{color}
>  * {color:#00}refactor {color}MobFileCleanerChore to run on the RS 
> instead on Master to allow access to the 
> {color:#00}StoreFileWriterCreationTracker{color}s to make sure the 
> currently written files are not cleaned up



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Commented] (HBASE-26969) Eliminate MOB renames when SFT is enabled

2022-05-31 Thread Wellington Chevreuil (Jira)


[ 
https://issues.apache.org/jira/browse/HBASE-26969?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17544492#comment-17544492
 ] 

Wellington Chevreuil commented on HBASE-26969:
--

{quote}
We have 2 new regions p1, p2 and p is archived, maybe even deleted altogether. 
Both p1 and p2 are online and contain references to "_p" 
mobfile but we have no way of knowing we should search these regions for 
references. So the master cleaner have to read every single hfile to find the 
references in p1 and p2.
{quote}

So p1 and p2 can have references to p even when p is no longer in meta? If 
that's the case, then yeah, we need master cleaner to check everything. 

I was wondering if p would be kept in meta as split until p1 and p2 compacted 
and had no reference to files from p. And similarly for merges, then we could 
just scan meta for regions in these states.

> Eliminate MOB renames when SFT is enabled
> -
>
> Key: HBASE-26969
> URL: https://issues.apache.org/jira/browse/HBASE-26969
> Project: HBase
>  Issue Type: Sub-task
>  Components: mob
>Affects Versions: 2.5.0, 3.0.0-alpha-3
>Reporter: Szabolcs Bukros
>Assignee: Szabolcs Bukros
>Priority: Major
> Fix For: 2.6.0, 3.0.0-alpha-3
>
>
> MOB file compaction and flush still relies on renames even when SFT is 
> enabled.
> My proposed changes are:
>  * when requireWritingToTmpDirFirst is false during mob flush/compact instead 
> of using the temp writer we should create a different writer using a 
> {color:#00}StoreFileWriterCreationTracker that writes directly to the mob 
> store folder{color}
>  * {color:#00}these StoreFileWriterCreationTracker should be stored in 
> the MobStore. This would requires us to extend MobStore with a createWriter 
> and a finalizeWriter method to handle this{color}
>  * {color:#00}refactor {color}MobFileCleanerChore to run on the RS 
> instead on Master to allow access to the 
> {color:#00}StoreFileWriterCreationTracker{color}s to make sure the 
> currently written files are not cleaned up



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Commented] (HBASE-26969) Eliminate MOB renames when SFT is enabled

2022-05-26 Thread Szabolcs Bukros (Jira)


[ 
https://issues.apache.org/jira/browse/HBASE-26969?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17542548#comment-17542548
 ] 

Szabolcs Bukros commented on HBASE-26969:
-

> the master cleaner could check only files from regions not online on any RS

That would not be enough. Consider the following scenario. Region p creates a 
mobfile with a name of "_p". While region p is online the rs 
cleaner can identify that "_p" belongs to this region and can 
clean it up if it is no longer referenced from said region. Now let's split 
region p.  We have 2 new regions p1, p2 and p is archived, maybe even deleted 
altogether. Both p1 and p2 are online and contain references to 
"_p" mobfile but we have no way of knowing we should search 
these regions for references. So the master cleaner have to read every single 
hfile to find the references in p1 and p2.

The mobfiles keep their name until a major compaction runs.

 

> Eliminate MOB renames when SFT is enabled
> -
>
> Key: HBASE-26969
> URL: https://issues.apache.org/jira/browse/HBASE-26969
> Project: HBase
>  Issue Type: Sub-task
>  Components: mob
>Affects Versions: 2.5.0, 3.0.0-alpha-3
>Reporter: Szabolcs Bukros
>Assignee: Szabolcs Bukros
>Priority: Major
> Fix For: 2.6.0, 3.0.0-alpha-3
>
>
> MOB file compaction and flush still relies on renames even when SFT is 
> enabled.
> My proposed changes are:
>  * when requireWritingToTmpDirFirst is false during mob flush/compact instead 
> of using the temp writer we should create a different writer using a 
> {color:#00}StoreFileWriterCreationTracker that writes directly to the mob 
> store folder{color}
>  * {color:#00}these StoreFileWriterCreationTracker should be stored in 
> the MobStore. This would requires us to extend MobStore with a createWriter 
> and a finalizeWriter method to handle this{color}
>  * {color:#00}refactor {color}MobFileCleanerChore to run on the RS 
> instead on Master to allow access to the 
> {color:#00}StoreFileWriterCreationTracker{color}s to make sure the 
> currently written files are not cleaned up



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Commented] (HBASE-26969) Eliminate MOB renames when SFT is enabled

2022-05-25 Thread Wellington Chevreuil (Jira)


[ 
https://issues.apache.org/jira/browse/HBASE-26969?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17542067#comment-17542067
 ] 

Wellington Chevreuil commented on HBASE-26969:
--

{quote}
The problem is that when we can not easily identify which region should contain 
references to a given MOB file we have absolutely no way to tell and have to 
read every single hfile's metadata to check for references.
{quote}
I get that, my question here is if there is a way the master cleaner could 
check only files from regions not online on any RS (as online regions would 
already be checked by the cleaner running on each RS). If we can trust meta 
listing of split/merged regions, then we could only iterate through those, 
instead of every single region dir under the root dir. But if split/merged 
region dirs are still kept under root dir even after those regions are removed 
from meta, then we can't rely on meta.

> Eliminate MOB renames when SFT is enabled
> -
>
> Key: HBASE-26969
> URL: https://issues.apache.org/jira/browse/HBASE-26969
> Project: HBase
>  Issue Type: Sub-task
>  Components: mob
>Affects Versions: 2.5.0, 3.0.0-alpha-3
>Reporter: Szabolcs Bukros
>Assignee: Szabolcs Bukros
>Priority: Major
> Fix For: 2.6.0, 3.0.0-alpha-3
>
>
> MOB file compaction and flush still relies on renames even when SFT is 
> enabled.
> My proposed changes are:
>  * when requireWritingToTmpDirFirst is false during mob flush/compact instead 
> of using the temp writer we should create a different writer using a 
> {color:#00}StoreFileWriterCreationTracker that writes directly to the mob 
> store folder{color}
>  * {color:#00}these StoreFileWriterCreationTracker should be stored in 
> the MobStore. This would requires us to extend MobStore with a createWriter 
> and a finalizeWriter method to handle this{color}
>  * {color:#00}refactor {color}MobFileCleanerChore to run on the RS 
> instead on Master to allow access to the 
> {color:#00}StoreFileWriterCreationTracker{color}s to make sure the 
> currently written files are not cleaned up



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Commented] (HBASE-26969) Eliminate MOB renames when SFT is enabled

2022-05-23 Thread Szabolcs Bukros (Jira)


[ 
https://issues.apache.org/jira/browse/HBASE-26969?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17541025#comment-17541025
 ] 

Szabolcs Bukros commented on HBASE-26969:
-

[~zhangduo] I'm sorry, I might have misspoken. We do not need an extra SFT. 
Having the references in hfile metadata is sufficient. It's just slow and 
clunky. But it works. I hoped a better way of storing this data could be found, 
but as you have pointed out that is not necessary.

SFT is only linked to this issue, because SFT and removing renames are 
thematically connected, I'm relying on some tools/solutions added to support 
SFT and removing renames makes things more complicated so instead of changing 
the default behavior the idea was to only remove them when SFT, that removed 
the other renames, is enabled.

> Eliminate MOB renames when SFT is enabled
> -
>
> Key: HBASE-26969
> URL: https://issues.apache.org/jira/browse/HBASE-26969
> Project: HBase
>  Issue Type: Sub-task
>  Components: mob
>Affects Versions: 2.5.0, 3.0.0-alpha-3
>Reporter: Szabolcs Bukros
>Assignee: Szabolcs Bukros
>Priority: Major
> Fix For: 2.6.0, 3.0.0-alpha-3
>
>
> MOB file compaction and flush still relies on renames even when SFT is 
> enabled.
> My proposed changes are:
>  * when requireWritingToTmpDirFirst is false during mob flush/compact instead 
> of using the temp writer we should create a different writer using a 
> {color:#00}StoreFileWriterCreationTracker that writes directly to the mob 
> store folder{color}
>  * {color:#00}these StoreFileWriterCreationTracker should be stored in 
> the MobStore. This would requires us to extend MobStore with a createWriter 
> and a finalizeWriter method to handle this{color}
>  * {color:#00}refactor {color}MobFileCleanerChore to run on the RS 
> instead on Master to allow access to the 
> {color:#00}StoreFileWriterCreationTracker{color}s to make sure the 
> currently written files are not cleaned up



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Commented] (HBASE-26969) Eliminate MOB renames when SFT is enabled

2022-05-23 Thread Duo Zhang (Jira)


[ 
https://issues.apache.org/jira/browse/HBASE-26969?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17541006#comment-17541006
 ] 

Duo Zhang commented on HBASE-26969:
---

{noformat}
That is true. We do not use SFT. But based on similar changes the renames would 
be only eliminated if SFT is enabled, not by default. Also it relies on 
WriterCreationTracker which is mostly an SFT tool.
{noformat}

As long as we have all the file references in the normal store file's metadata, 
why we still need an extra SFT?

> Eliminate MOB renames when SFT is enabled
> -
>
> Key: HBASE-26969
> URL: https://issues.apache.org/jira/browse/HBASE-26969
> Project: HBase
>  Issue Type: Sub-task
>  Components: mob
>Affects Versions: 2.5.0, 3.0.0-alpha-3
>Reporter: Szabolcs Bukros
>Assignee: Szabolcs Bukros
>Priority: Major
> Fix For: 2.6.0, 3.0.0-alpha-3
>
>
> MOB file compaction and flush still relies on renames even when SFT is 
> enabled.
> My proposed changes are:
>  * when requireWritingToTmpDirFirst is false during mob flush/compact instead 
> of using the temp writer we should create a different writer using a 
> {color:#00}StoreFileWriterCreationTracker that writes directly to the mob 
> store folder{color}
>  * {color:#00}these StoreFileWriterCreationTracker should be stored in 
> the MobStore. This would requires us to extend MobStore with a createWriter 
> and a finalizeWriter method to handle this{color}
>  * {color:#00}refactor {color}MobFileCleanerChore to run on the RS 
> instead on Master to allow access to the 
> {color:#00}StoreFileWriterCreationTracker{color}s to make sure the 
> currently written files are not cleaned up



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Commented] (HBASE-26969) Eliminate MOB renames when SFT is enabled

2022-05-23 Thread Szabolcs Bukros (Jira)


[ 
https://issues.apache.org/jira/browse/HBASE-26969?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17541004#comment-17541004
 ] 

Szabolcs Bukros commented on HBASE-26969:
-

[~wchevreuil] 

> Or is it that we lingering region dirs even after the parent SPLIT/MERGE got 
>removed from META?

Yes. these regions are clean up by a chore and linger after no longer used. But 
this does not really matter. The problem is that when we can not easily 
identify which region should contain references to a given MOB file we have 
absolutely no way to tell and have to read every single hfile's metadata to 
check for references.

[~zhangduo] 

> we do not use SFT at all the MOB regions

That is true. We do not use SFT. But based on similar changes the renames would 
be only eliminated if SFT is enabled, not by default. Also it relies on 
WriterCreationTracker which is mostly an SFT tool.

> Eliminate MOB renames when SFT is enabled
> -
>
> Key: HBASE-26969
> URL: https://issues.apache.org/jira/browse/HBASE-26969
> Project: HBase
>  Issue Type: Sub-task
>  Components: mob
>Affects Versions: 2.5.0, 3.0.0-alpha-3
>Reporter: Szabolcs Bukros
>Assignee: Szabolcs Bukros
>Priority: Major
> Fix For: 2.6.0, 3.0.0-alpha-3
>
>
> MOB file compaction and flush still relies on renames even when SFT is 
> enabled.
> My proposed changes are:
>  * when requireWritingToTmpDirFirst is false during mob flush/compact instead 
> of using the temp writer we should create a different writer using a 
> {color:#00}StoreFileWriterCreationTracker that writes directly to the mob 
> store folder{color}
>  * {color:#00}these StoreFileWriterCreationTracker should be stored in 
> the MobStore. This would requires us to extend MobStore with a createWriter 
> and a finalizeWriter method to handle this{color}
>  * {color:#00}refactor {color}MobFileCleanerChore to run on the RS 
> instead on Master to allow access to the 
> {color:#00}StoreFileWriterCreationTracker{color}s to make sure the 
> currently written files are not cleaned up



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Commented] (HBASE-26969) Eliminate MOB renames when SFT is enabled

2022-05-18 Thread Duo Zhang (Jira)


[ 
https://issues.apache.org/jira/browse/HBASE-26969?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17538828#comment-17538828
 ] 

Duo Zhang commented on HBASE-26969:
---

So I think the title of this PR should be changed than? This is not about SFT, 
we do not use SFT at all the MOB regions. It is just 'Eliminate MOB renames'...

> Eliminate MOB renames when SFT is enabled
> -
>
> Key: HBASE-26969
> URL: https://issues.apache.org/jira/browse/HBASE-26969
> Project: HBase
>  Issue Type: Sub-task
>  Components: mob
>Affects Versions: 2.5.0, 3.0.0-alpha-3
>Reporter: Szabolcs Bukros
>Assignee: Szabolcs Bukros
>Priority: Major
> Fix For: 2.6.0, 3.0.0-alpha-3
>
>
> MOB file compaction and flush still relies on renames even when SFT is 
> enabled.
> My proposed changes are:
>  * when requireWritingToTmpDirFirst is false during mob flush/compact instead 
> of using the temp writer we should create a different writer using a 
> {color:#00}StoreFileWriterCreationTracker that writes directly to the mob 
> store folder{color}
>  * {color:#00}these StoreFileWriterCreationTracker should be stored in 
> the MobStore. This would requires us to extend MobStore with a createWriter 
> and a finalizeWriter method to handle this{color}
>  * {color:#00}refactor {color}MobFileCleanerChore to run on the RS 
> instead on Master to allow access to the 
> {color:#00}StoreFileWriterCreationTracker{color}s to make sure the 
> currently written files are not cleaned up



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Commented] (HBASE-26969) Eliminate MOB renames when SFT is enabled

2022-05-18 Thread Wellington Chevreuil (Jira)


[ 
https://issues.apache.org/jira/browse/HBASE-26969?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17538825#comment-17538825
 ] 

Wellington Chevreuil commented on HBASE-26969:
--

Double posting my comments from the PR. Functionally, the Master cleaner looks 
correct to me. Thinking if there's a possible more efficient alternative, can 
we rely on meta to fetch the parent SPLIT/MERGE regions? I guess those are the 
ones that would not be online anywhere. Or is it that we lingering region dirs 
even after the parent SPLIT/MERGE got removed from META?

> Eliminate MOB renames when SFT is enabled
> -
>
> Key: HBASE-26969
> URL: https://issues.apache.org/jira/browse/HBASE-26969
> Project: HBase
>  Issue Type: Sub-task
>  Components: mob
>Affects Versions: 2.5.0, 3.0.0-alpha-3
>Reporter: Szabolcs Bukros
>Assignee: Szabolcs Bukros
>Priority: Major
> Fix For: 2.6.0, 3.0.0-alpha-3
>
>
> MOB file compaction and flush still relies on renames even when SFT is 
> enabled.
> My proposed changes are:
>  * when requireWritingToTmpDirFirst is false during mob flush/compact instead 
> of using the temp writer we should create a different writer using a 
> {color:#00}StoreFileWriterCreationTracker that writes directly to the mob 
> store folder{color}
>  * {color:#00}these StoreFileWriterCreationTracker should be stored in 
> the MobStore. This would requires us to extend MobStore with a createWriter 
> and a finalizeWriter method to handle this{color}
>  * {color:#00}refactor {color}MobFileCleanerChore to run on the RS 
> instead on Master to allow access to the 
> {color:#00}StoreFileWriterCreationTracker{color}s to make sure the 
> currently written files are not cleaned up



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Commented] (HBASE-26969) Eliminate MOB renames when SFT is enabled

2022-05-16 Thread Szabolcs Bukros (Jira)


[ 
https://issues.apache.org/jira/browse/HBASE-26969?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17537787#comment-17537787
 ] 

Szabolcs Bukros commented on HBASE-26969:
-

{{{quote}}}

I guess if we want to compact the mob files, we always need to compact the 
normal files which references the mob files so we can update the references in 
the metadata?

{quote}

Yes, that is how it works.

{{{quote}}}

The mob files should have a different name prefix or under a different 
directory?

{{{}{quote}{}}}{{{}{}}}

They have a different directory structure. 
"/mobdir/data/default/table_name/a0209c070c85d1e4d500af8ba33c3c02/cf"

They are stored fully separated. Please note these regions only contain mob 
files and are fully independent from the referencing regions. A single mob 
region could theoretically contain every MOB file in hbase regardless of where 
it is referenced from. Also their naming convention is different. For us the 
only important thing is that it ends with "_", so something like this: 
"0cc175b9c0f1b6a831c399e2697726612022050314ecf20b51674cd6bd647bfb2d88b1ff_b593e96e821ba6211d8a4b101a88"

{quote}

So at least for loading, there will be no problem

{quote}

That's true. Reads are very straightforward.

{{{quote}}}

I think the only problem here is how do we clean up the half written mob files, 
I think the logic is mainly the same with what we have now, get all the mob 
refs from all the normal storefiles, to construct the base list, and then get 
all the mob files which are currently being written, all MOB files besides them 
are the ones should be deleted.

{quote}{{{}{}}}

{{That is part of the problme, yes. To have access to the half written mob file 
list the cleaner have to run on the RS. But each RS only has access to it's own 
}}half written mob file list so each can only clean a subset of the existing 
mob files. To be precise if a mob file name ends with a region's name that is 
hosted on the current RS then the cleaner can decide if it can be archived or 
not. Unfortunately with merges and splits regions get archived so after a point 
there will be mob files containing names of regions not hosted on any RS and 
none of the cleaners running on RSes could clean these up. So we need one more 
cleaner specifically for these (I put it on master to replace the original 
cleaner), that have to read every available hfile to make sure we have every 
active mob reference and are able to decide if a mob file created by a since 
archived region can be archived or not.

> Eliminate MOB renames when SFT is enabled
> -
>
> Key: HBASE-26969
> URL: https://issues.apache.org/jira/browse/HBASE-26969
> Project: HBase
>  Issue Type: Sub-task
>  Components: mob
>Affects Versions: 2.5.0, 3.0.0-alpha-3
>Reporter: Szabolcs Bukros
>Assignee: Szabolcs Bukros
>Priority: Major
> Fix For: 2.6.0, 3.0.0-alpha-3
>
>
> MOB file compaction and flush still relies on renames even when SFT is 
> enabled.
> My proposed changes are:
>  * when requireWritingToTmpDirFirst is false during mob flush/compact instead 
> of using the temp writer we should create a different writer using a 
> {color:#00}StoreFileWriterCreationTracker that writes directly to the mob 
> store folder{color}
>  * {color:#00}these StoreFileWriterCreationTracker should be stored in 
> the MobStore. This would requires us to extend MobStore with a createWriter 
> and a finalizeWriter method to handle this{color}
>  * {color:#00}refactor {color}MobFileCleanerChore to run on the RS 
> instead on Master to allow access to the 
> {color:#00}StoreFileWriterCreationTracker{color}s to make sure the 
> currently written files are not cleaned up



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Commented] (HBASE-26969) Eliminate MOB renames when SFT is enabled

2022-05-13 Thread Duo Zhang (Jira)


[ 
https://issues.apache.org/jira/browse/HBASE-26969?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17536730#comment-17536730
 ] 

Duo Zhang commented on HBASE-26969:
---

OK, so when flushing, we will write a mob file, and then added it to the 
metadata of the normal file so when reading, we know where to find the files. 
And in this way, I guess if we want to compact the mob files, we always need to 
compact the normal files which references the mob files so we can update the 
references in the metadata?

Then I do not think we need to use SFT to track the mob files.
The mob files should have a different name prefix or under a different 
directory? Or at least, reading the header can let us know that it is a MOB 
file? When loading, we just collect all the mob refs from all the normal 
storefiles, then we know the list of mob files. So at least for loading, there 
will be no problem as we will not load the broken MOB files if we write the 
files directly to the final directory.

I think the only problem here is how do we clean up the half written mob files, 
I think the logic is mainly the same with what we have now, get all the mob 
refs from all the normal storefiles, to construct the base list, and then get 
all the mob files which are currently being written, all MOB files besides them 
are the ones should be deleted.

> Eliminate MOB renames when SFT is enabled
> -
>
> Key: HBASE-26969
> URL: https://issues.apache.org/jira/browse/HBASE-26969
> Project: HBase
>  Issue Type: Sub-task
>  Components: mob
>Affects Versions: 2.5.0, 3.0.0-alpha-3
>Reporter: Szabolcs Bukros
>Assignee: Szabolcs Bukros
>Priority: Major
> Fix For: 2.6.0, 3.0.0-alpha-3
>
>
> MOB file compaction and flush still relies on renames even when SFT is 
> enabled.
> My proposed changes are:
>  * when requireWritingToTmpDirFirst is false during mob flush/compact instead 
> of using the temp writer we should create a different writer using a 
> {color:#00}StoreFileWriterCreationTracker that writes directly to the mob 
> store folder{color}
>  * {color:#00}these StoreFileWriterCreationTracker should be stored in 
> the MobStore. This would requires us to extend MobStore with a createWriter 
> and a finalizeWriter method to handle this{color}
>  * {color:#00}refactor {color}MobFileCleanerChore to run on the RS 
> instead on Master to allow access to the 
> {color:#00}StoreFileWriterCreationTracker{color}s to make sure the 
> currently written files are not cleaned up



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Commented] (HBASE-26969) Eliminate MOB renames when SFT is enabled

2022-05-13 Thread Szabolcs Bukros (Jira)


[ 
https://issues.apache.org/jira/browse/HBASE-26969?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17536589#comment-17536589
 ] 

Szabolcs Bukros commented on HBASE-26969:
-

[~zhangduo] thank you for taking time and reading this!
As far as I understand when a storeFile has data that is stored in a mob file 
then that storeFile's metadata will have a reference to these mob files. So 
when a scan request tries to read the data it knows which mob file to check. 
This is the only tracking we have.
{code:java}
storeFile.getMetadataValue(HStoreFile.MOB_FILE_REFS); {code}
For cleanup the chore have to know which mob files are currently actively 
referenced. To get this lit, the chore check's the metadata of every single 
storeFile hbase have in a mob enabled CF, and collects the references from 
them. It just iterates through the /data folder table by table.

> Eliminate MOB renames when SFT is enabled
> -
>
> Key: HBASE-26969
> URL: https://issues.apache.org/jira/browse/HBASE-26969
> Project: HBase
>  Issue Type: Sub-task
>  Components: mob
>Affects Versions: 2.5.0, 3.0.0-alpha-3
>Reporter: Szabolcs Bukros
>Assignee: Szabolcs Bukros
>Priority: Major
> Fix For: 2.6.0, 3.0.0-alpha-3
>
>
> MOB file compaction and flush still relies on renames even when SFT is 
> enabled.
> My proposed changes are:
>  * when requireWritingToTmpDirFirst is false during mob flush/compact instead 
> of using the temp writer we should create a different writer using a 
> {color:#00}StoreFileWriterCreationTracker that writes directly to the mob 
> store folder{color}
>  * {color:#00}these StoreFileWriterCreationTracker should be stored in 
> the MobStore. This would requires us to extend MobStore with a createWriter 
> and a finalizeWriter method to handle this{color}
>  * {color:#00}refactor {color}MobFileCleanerChore to run on the RS 
> instead on Master to allow access to the 
> {color:#00}StoreFileWriterCreationTracker{color}s to make sure the 
> currently written files are not cleaned up



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Commented] (HBASE-26969) Eliminate MOB renames when SFT is enabled

2022-05-13 Thread Duo Zhang (Jira)


[ 
https://issues.apache.org/jira/browse/HBASE-26969?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17536534#comment-17536534
 ] 

Duo Zhang commented on HBASE-26969:
---

I'm not very familiar with the MOB related code, but how do we track and clean 
MOB files before we have SFT? If it is similiar to the normal hfiles, then I 
think SFT will also work. If it is not, then I think we should review again to 
see whether SFT is the suitable way here.

So mind posting the original tracking way of MOB files first here?

Thanks.

> Eliminate MOB renames when SFT is enabled
> -
>
> Key: HBASE-26969
> URL: https://issues.apache.org/jira/browse/HBASE-26969
> Project: HBase
>  Issue Type: Sub-task
>  Components: mob
>Affects Versions: 2.5.0, 3.0.0-alpha-3
>Reporter: Szabolcs Bukros
>Assignee: Szabolcs Bukros
>Priority: Major
> Fix For: 2.6.0, 3.0.0-alpha-3
>
>
> MOB file compaction and flush still relies on renames even when SFT is 
> enabled.
> My proposed changes are:
>  * when requireWritingToTmpDirFirst is false during mob flush/compact instead 
> of using the temp writer we should create a different writer using a 
> {color:#00}StoreFileWriterCreationTracker that writes directly to the mob 
> store folder{color}
>  * {color:#00}these StoreFileWriterCreationTracker should be stored in 
> the MobStore. This would requires us to extend MobStore with a createWriter 
> and a finalizeWriter method to handle this{color}
>  * {color:#00}refactor {color}MobFileCleanerChore to run on the RS 
> instead on Master to allow access to the 
> {color:#00}StoreFileWriterCreationTracker{color}s to make sure the 
> currently written files are not cleaned up



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Commented] (HBASE-26969) Eliminate MOB renames when SFT is enabled

2022-05-10 Thread Szabolcs Bukros (Jira)


[ 
https://issues.apache.org/jira/browse/HBASE-26969?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17534360#comment-17534360
 ] 

Szabolcs Bukros commented on HBASE-26969:
-

I would like to start by stating that this issue grow bigger than just removing 
the renames and exposed multiple issues in the MOB-SFT interaction.

I have uploaded a draft PR containing my changes. I intend to use it as a 
reference to show the issues when it comes to using MOB on FileBased SFT.

My main problem was that while MOB files were already tracked in the hfile 
metadata, the "single source of truth" is widely distributed and not easily 
available.

Both the WriterCreationTracker and the StoreFileTracker are RS based data and 
the MOB cleaner needs it to work reliably when FileBased SFT is used. Exposing 
this data and allowing the Master to request this from RSes, collect it and run 
the cleaner based on this, while technically possible, looked less than 
optimal. It would result in a single cluster wide spike that we should try to 
avoid and considering the delay that certain RSes could have (uneven load, GC 
pauses, etc) the data can be already outdated by the time the collection is 
done. So instead I tried to move the cleaner to the RSes. This solution also 
had it's drawbacks.

MOB file names contain the encoded name of the region that created them so the 
RS hosting that specific region can check it's hfiles for references and can 
clean it up if it does not find anything. The problem comes with merge/split 
parent regions. When the parent region is archived the new region's hfiles will 
still hold references to the old MOB files but now the only way to make sure if 
the old MOB file is referenced or not is to check every single hfile in every 
store belonging to the same columnfamily, because we can not tell based on it's 
name where it could be referenced from. Like the old cleaner did. So while I 
moved the MOB cleaner to the RS level and reduced it's scope to only clean up 
MOB files belonging to regions hosted by that RS I had to leave a "global" MOB 
cleaner running on Master to deal with MOB files created by archived regions 
but potentially still being referenced. And I think this is very ugly.

This whole process could have been significantly simpler if we would have 
tracker files in MOB stores but then we would have TWO competing sources of 
truth. The tracker files and the hfile metadata.

HBASE-27017 is a related issue where the snapshot code tries to get the active 
MOB files based on the configured SFT, but since MOB stores do not have tracker 
files it returns an empty list. If the store had tracker files it would work. 
Without a tracker file we either include every MOB files in the dir (garbage 
included) or scan every single hfile metadata for MOB references.

What I'm trying to say is that while I think my solution would work and solve 
the immediate issues I would much prefer if there would be a centralized, 
easily available active MOB list and create a solution based on that.

[~apurtell] ,[~zhangduo],[~elserj] ,[~wchevreuil] What do you think?

> Eliminate MOB renames when SFT is enabled
> -
>
> Key: HBASE-26969
> URL: https://issues.apache.org/jira/browse/HBASE-26969
> Project: HBase
>  Issue Type: Task
>  Components: mob
>Affects Versions: 2.5.0, 3.0.0-alpha-3
>Reporter: Szabolcs Bukros
>Assignee: Szabolcs Bukros
>Priority: Major
> Fix For: 2.6.0, 3.0.0-alpha-3
>
>
> MOB file compaction and flush still relies on renames even when SFT is 
> enabled.
> My proposed changes are:
>  * when requireWritingToTmpDirFirst is false during mob flush/compact instead 
> of using the temp writer we should create a different writer using a 
> {color:#00}StoreFileWriterCreationTracker that writes directly to the mob 
> store folder{color}
>  * {color:#00}these StoreFileWriterCreationTracker should be stored in 
> the MobStore. This would requires us to extend MobStore with a createWriter 
> and a finalizeWriter method to handle this{color}
>  * {color:#00}refactor {color}MobFileCleanerChore to run on the RS 
> instead on Master to allow access to the 
> {color:#00}StoreFileWriterCreationTracker{color}s to make sure the 
> currently written files are not cleaned up



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Commented] (HBASE-26969) Eliminate MOB renames when SFT is enabled

2022-05-09 Thread Szabolcs Bukros (Jira)


[ 
https://issues.apache.org/jira/browse/HBASE-26969?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17533854#comment-17533854
 ] 

Szabolcs Bukros commented on HBASE-26969:
-

Thanks [~apurtell] !

> Eliminate MOB renames when SFT is enabled
> -
>
> Key: HBASE-26969
> URL: https://issues.apache.org/jira/browse/HBASE-26969
> Project: HBase
>  Issue Type: Task
>  Components: mob
>Affects Versions: 2.5.0, 3.0.0-alpha-3
>Reporter: Szabolcs Bukros
>Assignee: Szabolcs Bukros
>Priority: Major
> Fix For: 2.6.0, 3.0.0-alpha-3
>
>
> MOB file compaction and flush still relies on renames even when SFT is 
> enabled.
> My proposed changes are:
>  * when requireWritingToTmpDirFirst is false during mob flush/compact instead 
> of using the temp writer we should create a different writer using a 
> {color:#00}StoreFileWriterCreationTracker that writes directly to the mob 
> store folder{color}
>  * {color:#00}these StoreFileWriterCreationTracker should be stored in 
> the MobStore. This would requires us to extend MobStore with a createWriter 
> and a finalizeWriter method to handle this{color}
>  * {color:#00}refactor {color}MobFileCleanerChore to run on the RS 
> instead on Master to allow access to the 
> {color:#00}StoreFileWriterCreationTracker{color}s to make sure the 
> currently written files are not cleaned up



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Commented] (HBASE-26969) Eliminate MOB renames when SFT is enabled

2022-05-09 Thread Andrew Kyle Purtell (Jira)


[ 
https://issues.apache.org/jira/browse/HBASE-26969?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17533837#comment-17533837
 ] 

Andrew Kyle Purtell commented on HBASE-26969:
-

[~bszabolcs] I added

bq.  The file based StoreFileTracker, FileBasedStoreFileTracker, is currently 
incompatible with the Medium Objects (MOB) feature. Do not enable them 
together. 

to the release notes of HBASE-26067 and HBASE-26826, so they will appear in all 
relevant release notes. If you would prefer an alternative, please provide it 
here and I will update the text again. 

> Eliminate MOB renames when SFT is enabled
> -
>
> Key: HBASE-26969
> URL: https://issues.apache.org/jira/browse/HBASE-26969
> Project: HBase
>  Issue Type: Task
>  Components: mob
>Affects Versions: 2.5.0, 3.0.0-alpha-3
>Reporter: Szabolcs Bukros
>Assignee: Szabolcs Bukros
>Priority: Major
> Fix For: 2.6.0, 3.0.0-alpha-3
>
>
> MOB file compaction and flush still relies on renames even when SFT is 
> enabled.
> My proposed changes are:
>  * when requireWritingToTmpDirFirst is false during mob flush/compact instead 
> of using the temp writer we should create a different writer using a 
> {color:#00}StoreFileWriterCreationTracker that writes directly to the mob 
> store folder{color}
>  * {color:#00}these StoreFileWriterCreationTracker should be stored in 
> the MobStore. This would requires us to extend MobStore with a createWriter 
> and a finalizeWriter method to handle this{color}
>  * {color:#00}refactor {color}MobFileCleanerChore to run on the RS 
> instead on Master to allow access to the 
> {color:#00}StoreFileWriterCreationTracker{color}s to make sure the 
> currently written files are not cleaned up



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Commented] (HBASE-26969) Eliminate MOB renames when SFT is enabled

2022-05-09 Thread Szabolcs Bukros (Jira)


[ 
https://issues.apache.org/jira/browse/HBASE-26969?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17533817#comment-17533817
 ] 

Szabolcs Bukros commented on HBASE-26969:
-

[~apurtell] It looks like the MOB feature is currently incompatible with 
FileBased SFT. Without this issue fixed the currently 
written/temporary/outdated/trash files in the store dir can break the 
MobFileCleanerChore and the related issue shows that snapshotting a MOB enabled 
table while FileBased SFT is used results in dataloss. Since 2.5.0 being so 
close to release this fact should be documented somewhere.
I'm planning to add a more detailed description of the issues I have 
encountered while trying to make these features work together as soon as I can 
publish a PR for reference.

> Eliminate MOB renames when SFT is enabled
> -
>
> Key: HBASE-26969
> URL: https://issues.apache.org/jira/browse/HBASE-26969
> Project: HBase
>  Issue Type: Task
>  Components: mob
>Affects Versions: 2.5.0, 3.0.0-alpha-3
>Reporter: Szabolcs Bukros
>Assignee: Szabolcs Bukros
>Priority: Major
> Fix For: 2.6.0, 3.0.0-alpha-3
>
>
> MOB file compaction and flush still relies on renames even when SFT is 
> enabled.
> My proposed changes are:
>  * when requireWritingToTmpDirFirst is false during mob flush/compact instead 
> of using the temp writer we should create a different writer using a 
> {color:#00}StoreFileWriterCreationTracker that writes directly to the mob 
> store folder{color}
>  * {color:#00}these StoreFileWriterCreationTracker should be stored in 
> the MobStore. This would requires us to extend MobStore with a createWriter 
> and a finalizeWriter method to handle this{color}
>  * {color:#00}refactor {color}MobFileCleanerChore to run on the RS 
> instead on Master to allow access to the 
> {color:#00}StoreFileWriterCreationTracker{color}s to make sure the 
> currently written files are not cleaned up



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Commented] (HBASE-26969) Eliminate MOB renames when SFT is enabled

2022-05-03 Thread Andrew Kyle Purtell (Jira)


[ 
https://issues.apache.org/jira/browse/HBASE-26969?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17531442#comment-17531442
 ] 

Andrew Kyle Purtell commented on HBASE-26969:
-

(y)

> Eliminate MOB renames when SFT is enabled
> -
>
> Key: HBASE-26969
> URL: https://issues.apache.org/jira/browse/HBASE-26969
> Project: HBase
>  Issue Type: Task
>  Components: mob
>Affects Versions: 2.5.0, 3.0.0-alpha-3
>Reporter: Szabolcs Bukros
>Assignee: Szabolcs Bukros
>Priority: Major
> Fix For: 2.6.0, 3.0.0-alpha-3
>
>
> MOB file compaction and flush still relies on renames even when SFT is 
> enabled.
> My proposed changes are:
>  * when requireWritingToTmpDirFirst is false during mob flush/compact instead 
> of using the temp writer we should create a different writer using a 
> {color:#00}StoreFileWriterCreationTracker that writes directly to the mob 
> store folder{color}
>  * {color:#00}these StoreFileWriterCreationTracker should be stored in 
> the MobStore. This would requires us to extend MobStore with a createWriter 
> and a finalizeWriter method to handle this{color}
>  * {color:#00}refactor {color}MobFileCleanerChore to run on the RS 
> instead on Master to allow access to the 
> {color:#00}StoreFileWriterCreationTracker{color}s to make sure the 
> currently written files are not cleaned up



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Commented] (HBASE-26969) Eliminate MOB renames when SFT is enabled

2022-05-03 Thread Szabolcs Bukros (Jira)


[ 
https://issues.apache.org/jira/browse/HBASE-26969?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17531420#comment-17531420
 ] 

Szabolcs Bukros commented on HBASE-26969:
-

[~apurtell] Please bump it.

> Eliminate MOB renames when SFT is enabled
> -
>
> Key: HBASE-26969
> URL: https://issues.apache.org/jira/browse/HBASE-26969
> Project: HBase
>  Issue Type: Task
>  Components: mob
>Affects Versions: 2.5.0, 3.0.0-alpha-3
>Reporter: Szabolcs Bukros
>Assignee: Szabolcs Bukros
>Priority: Major
> Fix For: 2.5.0, 2.6.0, 3.0.0-alpha-3
>
>
> MOB file compaction and flush still relies on renames even when SFT is 
> enabled.
> My proposed changes are:
>  * when requireWritingToTmpDirFirst is false during mob flush/compact instead 
> of using the temp writer we should create a different writer using a 
> {color:#00}StoreFileWriterCreationTracker that writes directly to the mob 
> store folder{color}
>  * {color:#00}these StoreFileWriterCreationTracker should be stored in 
> the MobStore. This would requires us to extend MobStore with a createWriter 
> and a finalizeWriter method to handle this{color}
>  * {color:#00}refactor {color}MobFileCleanerChore to run on the RS 
> instead on Master to allow access to the 
> {color:#00}StoreFileWriterCreationTracker{color}s to make sure the 
> currently written files are not cleaned up



--
This message was sent by Atlassian Jira
(v8.20.7#820007)


[jira] [Commented] (HBASE-26969) Eliminate MOB renames when SFT is enabled

2022-05-02 Thread Andrew Kyle Purtell (Jira)


[ 
https://issues.apache.org/jira/browse/HBASE-26969?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17530983#comment-17530983
 ] 

Andrew Kyle Purtell commented on HBASE-26969:
-

Going to roll 2.5.0RC0 soon. Keep this in for imminent resolution or bump it? 

> Eliminate MOB renames when SFT is enabled
> -
>
> Key: HBASE-26969
> URL: https://issues.apache.org/jira/browse/HBASE-26969
> Project: HBase
>  Issue Type: Task
>  Components: mob
>Affects Versions: 2.5.0, 3.0.0-alpha-3
>Reporter: Szabolcs Bukros
>Assignee: Szabolcs Bukros
>Priority: Major
>
> MOB file compaction and flush still relies on renames even when SFT is 
> enabled.
> My proposed changes are:
>  * when requireWritingToTmpDirFirst is false during mob flush/compact instead 
> of using the temp writer we should create a different writer using a 
> {color:#00}StoreFileWriterCreationTracker that writes directly to the mob 
> store folder{color}
>  * {color:#00}these StoreFileWriterCreationTracker should be stored in 
> the MobStore. This would requires us to extend MobStore with a createWriter 
> and a finalizeWriter method to handle this{color}
>  * {color:#00}refactor {color}MobFileCleanerChore to run on the RS 
> instead on Master to allow access to the 
> {color:#00}StoreFileWriterCreationTracker{color}s to make sure the 
> currently written files are not cleaned up



--
This message was sent by Atlassian Jira
(v8.20.7#820007)