JGroups Protocol FD SOCK

From NovaOrdis Knowledge Base
Jump to navigation Jump to search

External

Internal

Overview

FD_SOCK implements a failure detection protocol based on a ring of TCP sockets created between group members. Each member in a group connects to its neighbor. Last member connects to first, thus forming a ring. Member B is suspected when its neighbor A detects abnormally closed TCP socket presumably due to a node B crash. However, if a member B is about to leave gracefully, it lets its neighbor A know, so that it does not become suspected.

One FD_SOCK disadvantage is that hung servers and/or crashed switches will not cause sockets to be closed. Therefore hung members will not be suspected and network partitions due to switch failures will not be detected. A solution to this problem is to use both FD and FD_SOCK failure detection protocols.

Failure Detection

Recommendations

FD_ALL Recommendations

Configuration

JGroups standalone:

    <FD_SOCK start_port="${jboss.jgroups.udp.fd_sock_port:54200}"/>

VIEW_CHAGE

FD_SOCK reports view changes in DEBUG mode; this behavior can be quite useful when debugging group membership issues:

[2016-02-29 09:25:24,111] [DEBUG] [ {555095}] [org.jgroups.protocols.FD_SOCK] (Cluster Dispatch) -- VIEW_CHANGE received: [hos01/tcp, hos02/tcp]