Description
As Stephen suggested in parent JIRA, dedicating separate WAL for system tables (other than hbase:meta) should be done in new JIRA.
This task is to fulfill the system WAL separation.
Below is summary of discussion:
For system table to have its own WAL, we would recover system table faster (fast log split, fast log replay). It would probably benefit
AssignmentManager on system table region assignment. At this time, the new AssignmentManager is not planned to change WAL. So the existence of this JIRA is good for overall system, not specific to AssignmentManager.
There are 3 strategies for implementing system table WAL:
1. one WAL for all non-meta system tables
2. one WAL for each non-meta system table
3. one WAL for each region of non-meta system table
Currently most system tables are one region table (only ACL table may become big). Choices 2 and 3 basically are the same.
From implementation point of view, choices 2 and 3 are cleaner than choice 1 (as we have already had 1 WAL for META table and we can reuse the logic). With choice 2 or 3, assignment manager performance should not be impacted and it would be easier for assignment manager to assign system table region (eg. without waiting for user table log split to complete for assigning system table region).