Return-Path: X-Original-To: apmail-cassandra-user-archive@www.apache.org Delivered-To: apmail-cassandra-user-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id C98019466 for ; Tue, 11 Oct 2011 13:26:36 +0000 (UTC) Received: (qmail 74202 invoked by uid 500); 11 Oct 2011 13:26:34 -0000 Delivered-To: apmail-cassandra-user-archive@cassandra.apache.org Received: (qmail 74176 invoked by uid 500); 11 Oct 2011 13:26:34 -0000 Mailing-List: contact user-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@cassandra.apache.org Delivered-To: mailing list user@cassandra.apache.org Received: (qmail 74167 invoked by uid 99); 11 Oct 2011 13:26:34 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Oct 2011 13:26:34 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of etamme@gmail.com designates 209.85.212.44 as permitted sender) Received: from [209.85.212.44] (HELO mail-vw0-f44.google.com) (209.85.212.44) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Oct 2011 13:26:28 +0000 Received: by vws5 with SMTP id 5so6843594vws.31 for ; Tue, 11 Oct 2011 06:26:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:subject:references :in-reply-to:content-type:content-transfer-encoding; bh=cAtQ0GdIer/QtWsQWtk2eocFAl8gbRj+i6ZhYpMn02k=; b=J5czndTrAch5YxsP3Ir2mjhUJ93aJLV+gaeOU8hur/sGoj8iCYaxXYempSZxRVRW+a sOdW6Ycg+rarFp/Y68W7Rars3TsUpptji2fhqJmJfeLl4pY3vubEE9Ur4zLeC9le1qNW K4saf+1mhvhFx9itLRzDqR3dFAD3nSQKi42ME= Received: by 10.52.88.10 with SMTP id bc10mr18230093vdb.4.1318339567794; Tue, 11 Oct 2011 06:26:07 -0700 (PDT) Received: from [192.168.1.40] (static-173-210-1-18.ngn.onecommunications.net. [173.210.1.18]) by mx.google.com with ESMTPS id hl5sm22217672vdb.18.2011.10.11.06.26.05 (version=SSLv3 cipher=OTHER); Tue, 11 Oct 2011 06:26:06 -0700 (PDT) Message-ID: <4E9443EC.10609@gmail.com> Date: Tue, 11 Oct 2011 09:26:04 -0400 From: Eric Tamme User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.23) Gecko/20110921 Lightning/1.0b2 Thunderbird/3.1.15 MIME-Version: 1.0 To: user@cassandra.apache.org Subject: Re: Multi DC setup References: In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit >> We already have two separate rings. Idea of bidirectional sync is, if one >> ring is down, we can still send the traffic to other ring. When original >> cluster comes back, it will pick up the data from available cluster. I'm not >> sure if it makes sense to have separate rings or combine these two rings >> into one. I am not sure you fully understand how Cassandra is supposed to work - you do not need two rings to have two complete sets of data that you can "hot cutover" between. > Cassandra doesn't have support for synchronizing data between two > different rings. The multi-dc support in Cassandra amounts to having a > single ring containing all nodes from all data centers. Cassandra is > told (by configuring the snitch, such as through a property files) > which nodes are in which data center. Using the > NetworkTopologyStrategy, you then make sure to distribute replicas in > DC:s as you see fit. Using NTS you can configure a single ring into multiple "logical rings". This is effectively what the property file snitch does in conjunction with NTS. I gave a presentation on the NTS internals, and replicating data across geographically distributed data centers. You can find the slides here http://files.meetup.com/1794037/NTS_presentation.pdf Also Edward Capriolio's book "high performance cassandra" has some recipes for using NTS. I currently have 4 nodes in two data centers and I use NTS with property file snitch to write 1 copy of data to each DC (one node per DC) so that in the event of a total DC failure, we can still get to the data. The first write is "local" and the replica is asynchronous if you set write consistency to 1 - so you get fast writes with distribution. -Eric