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 05B90105DF for ; Thu, 9 Jan 2014 06:37:56 +0000 (UTC) Received: (qmail 47151 invoked by uid 500); 9 Jan 2014 06:37:53 -0000 Delivered-To: apmail-cassandra-commits-archive@cassandra.apache.org Received: (qmail 47113 invoked by uid 500); 9 Jan 2014 06:37:52 -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 47073 invoked by uid 99); 9 Jan 2014 06:37:51 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 09 Jan 2014 06:37:51 +0000 Date: Thu, 9 Jan 2014 06:37:50 +0000 (UTC) From: "sankalp kohli (JIRA)" To: commits@cassandra.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Updated] (CASSANDRA-6440) Repair should allow repairing particular endpoints to reduce WAN usage. 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-6440?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] sankalp kohli updated CASSANDRA-6440: ------------------------------------- Attachment: JIRA-6440-v2.diff The problem is that I am checking that all hosts passed as param during repair need to be neighbors. If someone is repairing two ranges, the neighbors are different for each range and hence it will fail. If you try to specify -pr and specify the right neighbors, then it will work. So I am removing this check. Now it will ignore any hosts provided which are not neighbors. Attaching the v2 patch with all changes > Repair should allow repairing particular endpoints to reduce WAN usage. > ------------------------------------------------------------------------ > > Key: CASSANDRA-6440 > URL: https://issues.apache.org/jira/browse/CASSANDRA-6440 > Project: Cassandra > Issue Type: New Feature > Reporter: sankalp kohli > Assignee: sankalp kohli > Priority: Minor > Attachments: 6440_repair.log, JIRA-6440-v2.diff, JIRA-6440.diff > > > The way we send out data that does not match over WAN can be improved. > Example: Say there are four nodes(A,B,C,D) which are replica of a range we are repairing. A, B is in DC1 and C,D is in DC2. If A does not have the data which other replicas have, then we will have following streams > 1) A to B and back > 2) A to C and back(Goes over WAN) > 3) A to D and back(Goes over WAN) > One of the ways of doing it to reduce WAN traffic is this. > 1) Repair A and B only with each other and C and D with each other starting at same time t. > 2) Once these repairs have finished, A,B and C,D are in sync with respect to time t. > 3) Now run a repair between A and C, the streams which are exchanged as a result of the diff will also be streamed to B and D via A and C(C and D behaves like a proxy to the streams). > For a replication of DC1:2,DC2:2, the WAN traffic will get reduced by 50% and even more for higher replication factors. > Another easy way to do this is to have repair command take nodes with which you want to repair with. Then we can do something like this. > 1) Run repair between (A and B) and (C and D) > 2) Run repair between (A and C) > 3) Run repair between (A and B) and (C and D) > But this will increase the traffic inside the DC as we wont be doing proxy. -- This message was sent by Atlassian JIRA (v6.1.5#6160)