[ 
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)

Reply via email to