Return-Path: Delivered-To: apmail-hadoop-hbase-dev-archive@minotaur.apache.org Received: (qmail 12248 invoked from network); 5 Mar 2010 03:46:02 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 5 Mar 2010 03:46:02 -0000 Received: (qmail 29844 invoked by uid 500); 5 Mar 2010 03:45:49 -0000 Delivered-To: apmail-hadoop-hbase-dev-archive@hadoop.apache.org Received: (qmail 29567 invoked by uid 500); 5 Mar 2010 03:45:49 -0000 Mailing-List: contact hbase-dev-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: hbase-dev@hadoop.apache.org Delivered-To: mailing list hbase-dev@hadoop.apache.org Received: (qmail 29458 invoked by uid 99); 5 Mar 2010 03:45:48 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 05 Mar 2010 03:45:48 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 05 Mar 2010 03:45:47 +0000 Received: from brutus.apache.org (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 455AF234C4CD for ; Fri, 5 Mar 2010 03:45:27 +0000 (UTC) Message-ID: <539972731.88811267760727283.JavaMail.jira@brutus.apache.org> Date: Fri, 5 Mar 2010 03:45:27 +0000 (UTC) From: "ryan rawson (JIRA)" To: hbase-dev@hadoop.apache.org Subject: [jira] Commented: (HBASE-2248) Provide new non-copy mechanism to assure atomic reads in get and scan In-Reply-To: <174857300.448551266881787938.JavaMail.jira@brutus.apache.org> 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/HBASE-2248?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12841687#action_12841687 ] ryan rawson commented on HBASE-2248: ------------------------------------ I think your suggestion is a good one, the race condition is really small, and holding up a client for just a few more microseconds should be reasonable. Once we restructure to not put logs appends between memstore puts, we are literally talking about the speed of adding a few dozen entries in an array. There is no data copy involved, since KeyValue was already read in during RPC time, and we are talking inserting small objects into a data structure. I originally thought of being speedy about returning, but read your own writes does make this be an issue. I'll add in your suggestions and put this test in as well. Thanks for the great test! > Provide new non-copy mechanism to assure atomic reads in get and scan > --------------------------------------------------------------------- > > Key: HBASE-2248 > URL: https://issues.apache.org/jira/browse/HBASE-2248 > Project: Hadoop HBase > Issue Type: Bug > Affects Versions: 0.20.3 > Reporter: Dave Latham > Fix For: 0.20.4 > > Attachments: HBASE-2248-demonstrate-previous-impl-bugs.patch, HBASE-2248-ryan.patch, hbase-2248.gc, HBASE-2248.patch, readownwrites-lost.2.patch, readownwrites-lost.patch, Screen shot 2010-02-23 at 10.33.38 AM.png, threads.txt > > > HBASE-2037 introduced a new MemStoreScanner which triggers a ConcurrentSkipListMap.buildFromSorted clone of the memstore and snapshot when starting a scan. > After upgrading to 0.20.3, we noticed a big slowdown in our use of short scans. Some of our data repesent a time series. The data is stored in time series order, MR jobs often insert/update new data at the end of the series, and queries usually have to pick up some or all of the series. These are often scans of 0-100 rows at a time. To load one page, we'll observe about 20 such scans being triggered concurrently, and they take 2 seconds to complete. Doing a thread dump of a region server shows many threads in ConcurrentSkipListMap.biuldFromSorted which traverses the entire map of key values to copy it. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.