You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Duo Zhang (JIRA)" <ji...@apache.org> on 2018/04/14 07:41:00 UTC

[jira] [Updated] (HBASE-20417) Do not read wal entries when peer is disabled

     [ https://issues.apache.org/jira/browse/HBASE-20417?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Duo Zhang updated HBASE-20417:
------------------------------
    Attachment: HBASE-20417.patch

> Do not read wal entries when peer is disabled
> ---------------------------------------------
>
>                 Key: HBASE-20417
>                 URL: https://issues.apache.org/jira/browse/HBASE-20417
>             Project: HBase
>          Issue Type: Sub-task
>          Components: Replication
>            Reporter: Duo Zhang
>            Priority: Major
>         Attachments: HBASE-20417.patch
>
>
> Now, the disabled check is in ReplicationSourceShipper. If peer is disabled, then we will not take entry batch from ReplicationSourceWALReader. But ReplicationSourceWALReader will keep reading wal entries until the buffer is full.
> For serial replication, the canPush check is in ReplicationSourceWALReader, so even when we disabled the peer during the modification for a serial peer, we could still run into the SerialReplicationChecker. Theoretically there will be no problem, since in the procedure we will only update last pushed sequence ids to a greater value. If canPush is true then a greater value does not make any difference, if canPush is false then we are still safe since the ReplicationSourceWALReader will be blocked.
> But this still makes me a little nervous, and also, it does not make sense to still read wal entries when the peer is disabled. So let's change the behavior.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)