Return-Path: Delivered-To: apmail-incubator-cassandra-user-archive@minotaur.apache.org Received: (qmail 34345 invoked from network); 3 Mar 2010 14:25:36 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 3 Mar 2010 14:25:36 -0000 Received: (qmail 86210 invoked by uid 500); 3 Mar 2010 14:25:28 -0000 Delivered-To: apmail-incubator-cassandra-user-archive@incubator.apache.org Received: (qmail 86154 invoked by uid 500); 3 Mar 2010 14:25:28 -0000 Mailing-List: contact cassandra-user-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: cassandra-user@incubator.apache.org Delivered-To: mailing list cassandra-user@incubator.apache.org Received: (qmail 86146 invoked by uid 99); 3 Mar 2010 14:25:28 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 03 Mar 2010 14:25:28 +0000 X-ASF-Spam-Status: No, hits=2.6 required=10.0 tests=RCVD_NUMERIC_HELO,SPF_HELO_PASS,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of gcdcu-cassandra-user@m.gmane.org designates 80.91.229.12 as permitted sender) Received: from [80.91.229.12] (HELO lo.gmane.org) (80.91.229.12) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 03 Mar 2010 14:25:20 +0000 Received: from list by lo.gmane.org with local (Exim 4.69) (envelope-from ) id 1NmpVR-0004Ee-Vj for cassandra-user@incubator.apache.org; Wed, 03 Mar 2010 15:24:57 +0100 Received: from 38.98.147.130 ([38.98.147.130]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 03 Mar 2010 15:24:57 +0100 Received: from tzz by 38.98.147.130 with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 03 Mar 2010 15:24:57 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: cassandra-user@incubator.apache.org From: Ted Zlatanov Subject: Re: finding Cassandra servers Date: Wed, 03 Mar 2010 08:24:43 -0600 Organization: =?utf-8?B?0KLQtdC+0LTQvtGAINCX0LvQsNGC0LDQvdC+0LI=?= @ Cienfuegos Lines: 40 Message-ID: <87k4ttqy8k.fsf@lifelogs.com> References: <87hbozq574.fsf@lifelogs.com> <87eik1lf8b.fsf@lifelogs.com> <1c6fcff1003030557v527c2dcbn78e1ea9f93adc328@mail.gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Complaints-To: usenet@dough.gmane.org X-Gmane-NNTP-Posting-Host: 38.98.147.130 X-Face: bd.DQ~'29fIs`T_%O%C\g%6jW)yi[zuz6;d4V0`@y-~$#3P_Ng{@m+e4o<4P'#(_GJQ%TT= D}[Ep*b!\e,fBZ'j_+#"Ps?s2!4H2-Y"sx" User-Agent: Gnus/5.110011 (No Gnus v0.11) Emacs/23.1.91 (gnu/linux) Cancel-Lock: sha1:adFCA/k2u9xc1uqo5cQ//fL9ej0= On Wed, 3 Mar 2010 07:57:32 -0600 Gary Dusbabek wrote: GD> 2010/3/3 Ted Zlatanov : TZ> I need to find Cassandra servers on my network from several types of TZ> clients and platforms. �The goal is to make adding and removing servers TZ> painless, assuming a leading window of at least 1 hour. �The discovery TZ> should be automatic and distributed. �I want to minimize management. GD> Nothing in the current codebase currently meets these needs. But then GD> again, cassandra doesn't need the described functionality. Zeroconf GD> confines itself to a single subnet (would require router configuration GD> to work across subnets so that multicast goes through). I looked it up and today, mDNS seems to be the standard name for this protocol (Bonjour/Rednezvous on Apple). Zeroconf seems to be the older name and there's a *lot* of name confusion so I'll just stick to "mDNS." Here's a decent Java implementation: http://sourceforge.net/projects/jmdns/ I don't think routing multicasts across subnets is a burden. GD> RRDNS would work, but something would need to keep that updated when GD> servers go away (it wouldn't be automatic). GD> If you can count on one of your (seed nodes) to be up, RRDNS could be GD> used to connect to one of them and fetch the token range list. To do GD> this, create a thrift client and call describe_ring. In older GD> versions you can get a jsonified endpoint map by calling GD> get_string_property('token map'). It would really be much more efficient if I didn't have to maintain RRDNS, but could instead look at the mDNS broadcasts for the Cassandra service. What you describe is a centralized model, no? With mDNS I wouldn't have to know which nodes are up or down, and I wouldn't have to do extra queries, it would just work. I don't see why Cassandra doesn't need that functionality. How else could you be guaranteed to find a live node if there is one on your subnet? Ted