[ https://issues.apache.org/jira/browse/HBASE-15205?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15159238#comment-15159238 ]
stack commented on HBASE-15205: ------------------------------- bq. No, we don serialize twice Ok. Good. Still seems wrong though using WALEdit to do the hand-off of scopes to the WALKey contained within the WALEdit. We are doing this because this patch no longer passes HTD? "So you want me to change in such a way that during WALKey construction itself pass the replicationScope? ACtually can do that but the WALKey has an explicit setter for replicationScope (already available) just because for DLR and in region replicas case you don want the replication scope to be added to the WALKey. Now if we use a constructor then may be though we pass the replicationScope during construction of WALKey again we may need to set it to null if the WALEdit says it is for region replica or during replay. Also this way is better considering the case when there is only bulk load replication then at that time there are chances that when there are no bulk load entries in WAL there is nothing to be replicated and hence we need not set the replicaitonScope to the WALKey. Hence passing on the replicationScope to the WALKey thro FSWALEntry seems fine to me." This is your justification from above. Sounds like we want to pass scopes on WALKey construction. The odd bit is forcing replication to be null for DLR and replicas. This is contained enough. Can we make the setReplicationScope package private. In another patch we might clean up this setting of replication to null especially as it will be for the narrow case of replicas only after DLR is cleared from code base? > Do not find the replication scope for every WAL#append() > -------------------------------------------------------- > > Key: HBASE-15205 > URL: https://issues.apache.org/jira/browse/HBASE-15205 > Project: HBase > Issue Type: Sub-task > Components: regionserver > Reporter: ramkrishna.s.vasudevan > Assignee: ramkrishna.s.vasudevan > Priority: Minor > Fix For: 2.0.0 > > Attachments: HBASE-15204_6.patch, HBASE-15205.patch, > HBASE-15205_1.patch, HBASE-15205_2.patch, HBASE-15205_3.patch, > HBASE-15205_4.patch, HBASE-15205_6.patch, HBASE-15205_6.patch, > HBASE-15205_7.patch, ScopeWALEdits.jpg, ScopeWALEdits_afterpatch.jpg > > > After the byte[] and char[] the other top contributor for lot of GC (though > it is only 2.86%) is the UTF_8.newDecoder. > This happens because for every WAL append we try to calculate the replication > scope associate with the families associated with the TableDescriptor. I > think per WAL append doing this is very costly and creates lot of garbage. -- This message was sent by Atlassian JIRA (v6.3.4#6332)