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 BAE7517BE3 for ; Fri, 18 Sep 2015 13:23:04 +0000 (UTC) Received: (qmail 69219 invoked by uid 500); 18 Sep 2015 13:23:04 -0000 Delivered-To: apmail-cassandra-commits-archive@cassandra.apache.org Received: (qmail 69183 invoked by uid 500); 18 Sep 2015 13:23:04 -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 69114 invoked by uid 99); 18 Sep 2015 13:23:04 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 18 Sep 2015 13:23:04 +0000 Date: Fri, 18 Sep 2015 13:23:04 +0000 (UTC) From: "Aleksey Yeschenko (JIRA)" To: commits@cassandra.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (CASSANDRA-10198) 3.0 hints should be streamed on decomission 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-10198?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14863273#comment-14863273 ] Aleksey Yeschenko commented on CASSANDRA-10198: ----------------------------------------------- The patch is good as is, almost, with the exception of one issue: if hints dispatch were paused, transfer wouldn't work, so we need to explicitly resume dispatch before doing all this, just in case. Otherwise the suggestions I pushed [here|https://github.com/iamaleksey/cassandra/commit/be5c42ef184dd98c4b7bf812b407ad920685aa5f] are mostly cosmetic, and we can commit without them: 1. moved checking for catalog emptiness to {{HintsCatalog::hasFiles}}, closer to the data, and to match {{HintsStore::hasFiles}} 2. renamed 'decommission' to 'transfer' 3. removed the {{hasFiles}} filter as it's redundant - if there are no files to stream, {{DispatchHintsTask::run}} will simply be a NOOP 4. for consistency with {{HintsDispatcher}} itself, only retry once on failure (after a fixed delay of 10 seconds, here) > 3.0 hints should be streamed on decomission > ------------------------------------------- > > Key: CASSANDRA-10198 > URL: https://issues.apache.org/jira/browse/CASSANDRA-10198 > Project: Cassandra > Issue Type: Bug > Reporter: Aleksey Yeschenko > Assignee: Marcus Eriksson > Fix For: 3.0.0 rc1 > > > CASSANDRA-6230 added all the necessary pieces in the initial release, but streaming itself didn't make it in time. > Now that hints are stored in flat files, we cannot just stream hints sstables. Instead we need to handoff hints files. > Essentially we need to rewrite {{StorageService::streamHints}} to be CASSANDRA-6230 aware. > {{HintMessage}} and {{HintVerbHandler}} can already handle hints targeted for other nodes (see javadoc for both, it's documented reasonably). > {{HintsDispatcher}} also takes hostId as an argument, and can stream any hints to any nodes. > The building blocks are all there - we just need {{StorageService::streamHints}} to pick the optimal candidate for each file and use {{HintsDispatcher}} to stream the files. -- This message was sent by Atlassian JIRA (v6.3.4#6332)