Return-Path: X-Original-To: apmail-cassandra-commits-archive@www.apache.org Delivered-To: apmail-cassandra-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id A05991016D for ; Wed, 9 Jul 2014 13:33:05 +0000 (UTC) Received: (qmail 53510 invoked by uid 500); 9 Jul 2014 13:33:05 -0000 Delivered-To: apmail-cassandra-commits-archive@cassandra.apache.org Received: (qmail 53483 invoked by uid 500); 9 Jul 2014 13:33:05 -0000 Mailing-List: contact commits-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cassandra.apache.org Delivered-To: mailing list commits@cassandra.apache.org Received: (qmail 53470 invoked by uid 99); 9 Jul 2014 13:33:05 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 09 Jul 2014 13:33:05 +0000 Date: Wed, 9 Jul 2014 13:33:05 +0000 (UTC) From: "Brandon Williams (JIRA)" To: commits@cassandra.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (CASSANDRA-7510) Notify clients that bootstrap is finished over binary protocol MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/CASSANDRA-7510?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14056228#comment-14056228 ] Brandon Williams commented on CASSANDRA-7510: --------------------------------------------- bq. Are you sure that it means "I'm ready to receive client connections"? My reading of the code is that STATUS_NORMAL is sent as part of SS.joinTokenRing which is itself part of SS.initServer. The latter being called in CassandraDaemon.setup before we start the thrift and native protocol servers. If the node needs to bootstrap, it will send JOINING because joinTokenRing will call bootstrap which sets it. It won't send NORMAL until bootstrap finishes and then it calls setTokens. Now, this is all before it returns control from initServer back to CassandraDaemon.setup, so there is a *very* small chance it could gossip it to another node before the rpc servers are started, but the only way around that is giving control of rpc startup to SS which feels ugly. > Notify clients that bootstrap is finished over binary protocol > -------------------------------------------------------------- > > Key: CASSANDRA-7510 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7510 > Project: Cassandra > Issue Type: Bug > Reporter: Joost Reuzel > Priority: Minor > Fix For: 2.0.10 > > Attachments: 7510.txt > > > Currently, Cassandra will notify clients when a new node is added to a cluster. However, that node is typically not usable yet. It first needs to gossip its key range and finish loading all its assigned data before it allows clients to connect. Depending on the amount of data this may take quite a while. The clients in the mean time have no clue about the bootstrap status of that node. The only thing they can do is periodically check if it will accept a connection. > My proposal would be to send an additional UP event when the bootstrap is done, this allows clients to mark the node initially as down/unavailable and simply wait for the UP event to arrive. > Kind regards, > Joost -- This message was sent by Atlassian JIRA (v6.2#6252)