Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 9FC1C200B0F for ; Fri, 17 Jun 2016 17:46:07 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 9E567160A61; Fri, 17 Jun 2016 15:46:07 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id ED45A160A62 for ; Fri, 17 Jun 2016 17:46:06 +0200 (CEST) Received: (qmail 18144 invoked by uid 500); 17 Jun 2016 15:46:05 -0000 Mailing-List: contact dev-help@reef.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@reef.apache.org Delivered-To: mailing list dev@reef.apache.org Received: (qmail 18113 invoked by uid 99); 17 Jun 2016 15:46:05 -0000 Received: from arcas.apache.org (HELO arcas) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 17 Jun 2016 15:46:05 +0000 Received: from arcas.apache.org (localhost [127.0.0.1]) by arcas (Postfix) with ESMTP id 6A1022C1F60 for ; Fri, 17 Jun 2016 15:46:05 +0000 (UTC) Date: Fri, 17 Jun 2016 15:46:05 +0000 (UTC) From: "Andrew Chung (JIRA)" To: dev@reef.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Updated] (REEF-1453) GroupCommunication should create a new observer for each client MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 archived-at: Fri, 17 Jun 2016 15:46:07 -0000 [ https://issues.apache.org/jira/browse/REEF-1453?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Chung updated REEF-1453: ------------------------------- Summary: GroupCommunication should create a new observer for each client (was: StreamingNetworkService should create a new observer for each client) > GroupCommunication should create a new observer for each client > --------------------------------------------------------------- > > Key: REEF-1453 > URL: https://issues.apache.org/jira/browse/REEF-1453 > Project: REEF > Issue Type: Improvement > Components: REEF.NET > Reporter: Andrew Chung > Assignee: Andrew Chung > Labels: FT, breaking_change > > {{StreamingNetworkService}} currently only has one universal observer that handles connections for all incoming clients. This is inconvenient because when a client fails or disconnects, there is no easy way to propagate the failure/completion signal of the *specific* failed client up to the universal observer. > A proposed solution is to instead allow the injection of a {{NetworkObserverFactory}}, which creates a new {{IObserver}} for each new client that is connected to the {{StreamingTransportServer}}. The {{NetworkObserverFactory}} itself will be wrapped in a universal observer registered of type {{IObserver>}} such that it receives a notification upon each new client. For each message, it will cast the {{IRemoteMessage.Identifier}} as a {{SocketRemoteIdentifier}}. If the {{IPEndpoint}} of the message has not been seen before, it will know that the message is from a new client and will create an {{IObserver}} for the new client and register the new client with the {{IPEndpoint}} with the {{ObserverContainer}}. > The change is a simple migration from the original universal observer model in that state can still be shared between the {{IObserver}} s spun off by the {{NetworkObserverFactory}} by passing the shared state object into the constructor of the created {{IObserver}} s. -- This message was sent by Atlassian JIRA (v6.3.4#6332)