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