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

Duo Zhang commented on HBASE-23326:
-----------------------------------

{quote}
If master later wants to use filesystem for data that doesn't fit system tables 
perhaps because it needed at startup, this would be natural place for it to put 
its data beside the local region and WALs.
{quote}

This is exactly the thing I want to avoid... I do not think there are other 
data which needs to store like this way, please use system tables?

{quote}
My suggestion is s/MasterProcs/master/. A dir named MasterProcs with a region 
and WALs in it is kinda wonky
{quote}

In general, name it as MasterProcs means it contains the master procedure data, 
you are free to store them in any format and now, the suitable way is to store 
them with the region format. At the first place I even wanted to reuse the old 
directory but then I found out that the name is 'MasterProcWALs', which is not 
correct as now not only WALs are stored in it, so I named it 'MasterProcs'.
And I need to say again, in my mind there are no other data have to be stored 
in this way, so I do not think we should make it general. Correct me if I'm 
wrong.

{quote}
Suggestion is just get the WALs into existing archive and use its existing 
archiving system (rather than have one for data WALs and another for procedure 
WALs). We can write another if we have to because someone wants Master to carry 
regions.
{quote}
In general I think this is fine. But after checking the code carefully, this is 
not easy in the currect code base. The wal directory and archive directory must 
be under the same wal root directory. And now since we changed the wal root 
directory to /hbase/MasterProcs, there is no way for us to set the archive 
directory to /hbase/oldWALs(unless we set the directory to ../oldWALs but I do 
no think this is the correct way, it is like a CVE...). Another way is to write 
the WAL to the normal /hbase/WALs directory and then we could use the 
/hbase/oldWALs to archive the WAL files but this breaks my assumption above 
that all the procedure data should be stored in the 'MasterProcs' so I do not 
think this is the correct way.

Anyway, let me see if I can reuse the log cleaner code here.

Thanks.


> Implement a ProcedureStore which stores procedures in a HRegion
> ---------------------------------------------------------------
>
>                 Key: HBASE-23326
>                 URL: https://issues.apache.org/jira/browse/HBASE-23326
>             Project: HBase
>          Issue Type: Improvement
>          Components: proc-v2
>            Reporter: Duo Zhang
>            Assignee: Duo Zhang
>            Priority: Critical
>             Fix For: 3.0.0, 2.3.0
>
>
> So we can resue the code in HRegion for persisting the procedures, and also 
> the optimized WAL implementation for better performance.
> This requires we merge the hbase-procedure module to hbase-server, which is 
> an anti-pattern as we make the hbase-server module more overloaded. But I 
> think later we can first try to move the WAL stuff out.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to