Return-Path: Delivered-To: apmail-cassandra-user-archive@www.apache.org Received: (qmail 73103 invoked from network); 31 May 2010 18:53:20 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 31 May 2010 18:53:20 -0000 Received: (qmail 64205 invoked by uid 500); 31 May 2010 18:53:19 -0000 Delivered-To: apmail-cassandra-user-archive@cassandra.apache.org Received: (qmail 64185 invoked by uid 500); 31 May 2010 18:53:19 -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 64177 invoked by uid 99); 31 May 2010 18:53:19 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 31 May 2010 18:53:19 +0000 X-ASF-Spam-Status: No, hits=-0.1 required=10.0 tests=AWL,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_PASS,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of jbellis@gmail.com designates 74.125.82.44 as permitted sender) Received: from [74.125.82.44] (HELO mail-ww0-f44.google.com) (74.125.82.44) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 31 May 2010 18:53:13 +0000 Received: by wwb39 with SMTP id 39so1267023wwb.31 for ; Mon, 31 May 2010 11:52:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:mime-version:received:in-reply-to :references:from:date:message-id:subject:to:content-type :content-transfer-encoding; bh=UI8TbVGyu8vVIy5uowLQHz83VtNl1wwU/ClyApxJ4nQ=; b=aWzvB2CqL+Yi6BAn0ZlCFXVVMv6Ad9eGYEUjgRJuBOw1kJ1r4rU6Qran8jlauOmm1+ h1b1lD/DLCRdqmTCiwDzib6lebkBYyIVduz+lb1zuglPpWBtq6YnuitOitBw3cxooWqT TZ+VdX39Gl7rCdDBjgttmFvx+Zm6qZ0BmtOn0= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-type:content-transfer-encoding; b=S9UjbA9wv4wbRD7PWxiVkTdPiWVGVhwX1AaEvrzgMsAExKYr/H3c+k6VawM9KLbZL5 x5onS+jt8Sqc6H4CWNJzKV67wtLmoxOfedr7NRlsfAikTIvXJvhexKc6G1a80ZXVutLM 461BI60imjg8M5bdJEoLCbsLDvRs2BTtxUOX4= Received: by 10.216.86.140 with SMTP id w12mr4568870wee.95.1275331972262; Mon, 31 May 2010 11:52:52 -0700 (PDT) MIME-Version: 1.0 Received: by 10.216.17.197 with HTTP; Mon, 31 May 2010 11:52:32 -0700 (PDT) In-Reply-To: References: From: Jonathan Ellis Date: Mon, 31 May 2010 13:52:32 -0500 Message-ID: Subject: Re: Start key must sort before (or equal to) finish key in your partitioner To: user@cassandra.apache.org Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable OPP uses lexical ordering on the keys, which isn't going to be the same as the natural order for a time-based uuid. On Mon, May 31, 2010 at 2:57 AM, Leslie Viljoen w= rote: > Hello! > > I am using an OrderPreservingPartitioner and sequential UUID's as > keys. When I use get_range I frequently get an error indicating that > my start key is not before or equal to my finish key, which seems > impossible. The code to request slices looks like this: > > sometime =3D Time.now > a =3D UUIDTools::UUID.timestamp_create(sometime) > b =3D UUIDTools::UUID.timestamp_create(sometime + 1) > slice =3D @cassandra.get_range(:ReportData, :start =3D> a.to_s, :finish = =3D> b.to_s) > puts "SORT ERROR!" if a >=3D b =A0 =A0# this never displays > > > > This is the error I get: > > /usr/lib/ruby/gems/1.8/gems/cassandra-0.8.2/lib/../vendor/gen-rb/cassandr= a.rb:152:in > `recv_get_range_slices': start key must sort before (or equal to) > finish key in your partitioner! > (CassandraThrift::InvalidRequestException) > =A0 =A0 =A0 =A0from /usr/lib/ruby/gems/1.8/gems/cassandra-0.8.2/lib/../ve= ndor/gen-rb/cassandra.rb:142:in > `get_range_slices' > =A0 =A0 =A0 =A0from /usr/lib/ruby/gems/1.8/gems/thrift_client-0.4.0/lib/t= hrift_client.rb:140:in > `send' > =A0 =A0 =A0 =A0from /usr/lib/ruby/gems/1.8/gems/thrift_client-0.4.0/lib/t= hrift_client.rb:140:in > `proxy' > =A0 =A0 =A0 =A0from (eval):1:in `get_range_slices' > =A0 =A0 =A0 =A0from /usr/lib/ruby/gems/1.8/gems/cassandra-0.8.2/lib/cassa= ndra/protocol.rb:78:in > `_get_range' > =A0 =A0 =A0 =A0from /usr/lib/ruby/gems/1.8/gems/cassandra-0.8.2/lib/cassa= ndra/cassandra.rb:230:in > `get_range' > =A0 =A0 =A0 =A0from ./read.rb:29:in `get_range' > =A0 =A0 =A0 =A0from ./read.rb:62 > =A0 =A0 =A0 =A0from ./read.rb:58:in `loop' > =A0 =A0 =A0 =A0from ./read.rb:58 > --=20 Jonathan Ellis Project Chair, Apache Cassandra co-founder of Riptano, the source for professional Cassandra support http://riptano.com