Return-Path: Delivered-To: apmail-lucene-java-dev-archive@www.apache.org Received: (qmail 78295 invoked from network); 21 Jul 2009 23:26:41 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 21 Jul 2009 23:26:41 -0000 Received: (qmail 22663 invoked by uid 500); 21 Jul 2009 23:27:45 -0000 Delivered-To: apmail-lucene-java-dev-archive@lucene.apache.org Received: (qmail 22592 invoked by uid 500); 21 Jul 2009 23:27:45 -0000 Mailing-List: contact java-dev-help@lucene.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: java-dev@lucene.apache.org Delivered-To: mailing list java-dev@lucene.apache.org Received: (qmail 22584 invoked by uid 99); 21 Jul 2009 23:27:45 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 21 Jul 2009 23:27:45 +0000 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of jason.rutherglen@gmail.com designates 74.125.92.26 as permitted sender) Received: from [74.125.92.26] (HELO qw-out-2122.google.com) (74.125.92.26) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 21 Jul 2009 23:27:37 +0000 Received: by qw-out-2122.google.com with SMTP id 8so1396662qwh.53 for ; Tue, 21 Jul 2009 16:26:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=lGLvC/6MxYenMrn16RrJUyCougiEalxGrScZSVpX3nE=; b=knD3NMw6nSa+MmCwkZWIr+tU6f+VBWV5A6lr74llXG/oXgefkRHJ2XafYUSzrVeRIS JtOltuw6p3do3CsZ2PJ0HVRGj8fCX2d4z6i7ENYw+FdT214tcbH166jzjkfRrYzHeC+z kqQ0JMGRiA+3M8A1gtiLIl0uTQ73VrYDifthI= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=lsqbaejxi94EbCdnZ6oWr0f+4Xmc2DZ9+3pjd9y/YcwybOkBGJ4z75SlJhw25qjWoZ 4UVEUQZAFr5aBQz+JvAjycrqwoADCwLWaRo8brBBofpHNfVTvAXUk8ti0FtsQQFtCG3j pHDsRPIM0DZeZpyyo7OgHk3Ja6Vhb73bSMukA= MIME-Version: 1.0 Received: by 10.224.28.130 with SMTP id m2mr208965qac.274.1248218813062; Tue, 21 Jul 2009 16:26:53 -0700 (PDT) In-Reply-To: <9ac0c6aa0907141256u2e247f55h9637b92fdc114f6e@mail.gmail.com> References: <85d3c3b60907141208p4584b72bp8a3098623a1c117a@mail.gmail.com> <9ac0c6aa0907141256u2e247f55h9637b92fdc114f6e@mail.gmail.com> Date: Tue, 21 Jul 2009 16:26:53 -0700 Message-ID: <85d3c3b60907211626t717bdebbq5a00a7835030221e@mail.gmail.com> Subject: Re: addIndexes* blocks addDocuments calls From: Jason Rutherglen To: java-dev@lucene.apache.org Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Virus-Checked: Checked by ClamAV on apache.org > EG you could imagine an addIndexes* call getting started, > completing a few merges. Then, concurrently, CMS picks & chooses > some of those added external segments to merge with some of the > original segments. Then addIndexes hits an exception. What do we > do? An exception due to an IO error from the external dir? We can abandon the merge and remove the external segments that failed from segmentInfos? > If IndexWriter maintained "branches" of the segmentInfos we > could actually rollback all changes, ie, remove what was done by > addIndexes but retroactively preserve any segments created by > other methods (flushing, other addIndexes calls, etc.). Branches stored in a TreeMap? With the keys being the method+randomId that initiated them? (i.e. addIndexes12) On Tue, Jul 14, 2009 at 12:56 PM, Michael McCandless wrote: > I agree, there's no real reason why addIndexes can run concurrently > with other things. =A0It's just software ;) > > One challenge is the transactional guarantee that addIndexes provide, > ie, it's all or none. =A0If there's an exception while adding, then > nothing was added. > > But, that was added before autoCommit=3Dfalse. =A0So perhaps we could > relax that and expect the app to instead rely on the "global" > transactional semantics provided by autoCommit=3Dfalse. > > EG you could imagine an addIndexes* call getting started, completing a > few merges. =A0Then, concurrently, CMS picks & chooses some of those > added external segments to merge with some of the original segments. > Then addIndexes hits an exception. =A0What do we do? > > If IndexWriter maintained "branches" of the segmentInfos we could > actually rollback all changes, ie, remove what was done by addIndexes > but retroactively preserve any segments created by other methods > (flushing, other addIndexes calls, etc.). > > Mike > > On Tue, Jul 14, 2009 at 3:08 PM, Jason > Rutherglen wrote: >> For replicating and general system performance, it would be good to offe= r a >> way to addIndexes* without blocking the addition of more docs. This seem= s >> doable somehow? > > --------------------------------------------------------------------- > To unsubscribe, e-mail: java-dev-unsubscribe@lucene.apache.org > For additional commands, e-mail: java-dev-help@lucene.apache.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: java-dev-unsubscribe@lucene.apache.org For additional commands, e-mail: java-dev-help@lucene.apache.org