You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ratis.apache.org by "Tsz Wo Nicholas Sze (JIRA)" <ji...@apache.org> on 2018/11/29 23:26:00 UTC

[jira] [Commented] (RATIS-436) Isolate heartbeats from append entries

    [ https://issues.apache.org/jira/browse/RATIS-436?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16704019#comment-16704019 ] 

Tsz Wo Nicholas Sze commented on RATIS-436:
-------------------------------------------

> ...  It might happen that append entries are blocked due to StateMachine#readStateMachineData.  ...

This case should be already taken care of -- FollowerState.inLogSync is to indicate that the follower is write log/statemachine data so that it should not time out.

I do see a bug in the async case, the boolean can be reset incorrectly.  Let me file a JIRA.

> Isolate heartbeats from append entries
> --------------------------------------
>
>                 Key: RATIS-436
>                 URL: https://issues.apache.org/jira/browse/RATIS-436
>             Project: Ratis
>          Issue Type: Bug
>            Reporter: Lokesh Jain
>            Assignee: Lokesh Jain
>            Priority: Major
>
> Currently heartbeats are sent in the same channel as append entries. It might happen that append entries are blocked due to StateMachine#readStateMachineData. In such a case the heartbeats can be missed. There are two possible solutions -
>  # Create a separate channel for heartbeats
>  # Separate heartbeat logic from append entries in LogAppender. In this case the heartbeats should not be blocked by append entries. One way to do it is to send heartbeats periodically via another thread.



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