Return-Path: Delivered-To: apmail-cassandra-user-archive@www.apache.org Received: (qmail 85706 invoked from network); 3 May 2010 15:38:45 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 3 May 2010 15:38:45 -0000 Received: (qmail 93924 invoked by uid 500); 3 May 2010 15:38:44 -0000 Delivered-To: apmail-cassandra-user-archive@cassandra.apache.org Received: (qmail 93872 invoked by uid 500); 3 May 2010 15:38:44 -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 93864 invoked by uid 99); 3 May 2010 15:38:44 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 03 May 2010 15:38:44 +0000 X-ASF-Spam-Status: No, hits=-0.2 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, 03 May 2010 15:38:38 +0000 Received: by wwi18 with SMTP id 18so303368wwi.31 for ; Mon, 03 May 2010 08:38:17 -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; bh=2VjwKEOoJ6KJw2p6GeVt4RCp8ahOcWKfmrj+NzCJMfk=; b=mIh8WPIRX9EzQBENzt3iInwFVTetqKgyVWlH/3Ai+J3tLRESIE1Fnpddw5DbQUxarx eixlT5iLcqDWpmjF/sstwdm/pJ2xT0P4j/bxFi/fR9l5hMyRikMOaTXISNIdHvFRN6Aa kvmo4JS38JLPJwx4e5+Xbm7zdmRmQyiwIV+FQ= 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; b=npuZDNNpg9rRfHvIXXXydjMXTN2wxYFAazuZj7Zvl51j9sSwuGmiYxQA7F+VO/YkDQ O0OPYKMCyKIhuUAa8vEu/RnmNfxaWPErVzX0TGAIm9Eb0asjqHlQdLXR04zNjylMiVGy 4QwlCQI8UbhT62YBHh2uQNZA+mlgZT2jxs6gU= Received: by 10.216.160.12 with SMTP id t12mr13070575wek.154.1272901095515; Mon, 03 May 2010 08:38:15 -0700 (PDT) MIME-Version: 1.0 Received: by 10.216.22.10 with HTTP; Mon, 3 May 2010 08:37:55 -0700 (PDT) In-Reply-To: References: From: Jonathan Ellis Date: Mon, 3 May 2010 10:37:55 -0500 Message-ID: Subject: Re: Row slice / cache performance To: user@cassandra.apache.org Content-Type: text/plain; charset=ISO-8859-1 On Sun, May 2, 2010 at 1:00 PM, James Golick wrote: > the ConcurrentSkipListMap (ColumnFamily.columns_). > SliceQueryFilter.getMemColumnIterator @ ~30% - Virtually all the time in > here is spent in ConcurrentSkipListMap$Values.toArrray() Besides the UUID optimization you posted, we should do an audit of ColumnFamily.getSortedColumns and replace with iteration where possible (in this case, we'd be left with one copy of most of the columns, but that's better than two). We can get rid of the other copy by fixing the logic in Memtable.getSliceIterator, which says "copy all the columns, so we can do a binary search on them to find where to start," but since columns are natively in sorted order we could just use an iterator and a while loop. Created https://issues.apache.org/jira/browse/CASSANDRA-1046 for this. -- Jonathan Ellis Project Chair, Apache Cassandra co-founder of Riptano, the source for professional Cassandra support http://riptano.com