From dev-return-12031-apmail-couchdb-dev-archive=couchdb.apache.org@couchdb.apache.org Fri Oct 01 23:36:46 2010 Return-Path: Delivered-To: apmail-couchdb-dev-archive@www.apache.org Received: (qmail 9590 invoked from network); 1 Oct 2010 23:36:45 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 1 Oct 2010 23:36:45 -0000 Received: (qmail 39165 invoked by uid 500); 1 Oct 2010 23:36:45 -0000 Delivered-To: apmail-couchdb-dev-archive@couchdb.apache.org Received: (qmail 39017 invoked by uid 500); 1 Oct 2010 23:36:44 -0000 Mailing-List: contact dev-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@couchdb.apache.org Delivered-To: mailing list dev@couchdb.apache.org Received: (qmail 39009 invoked by uid 99); 1 Oct 2010 23:36:44 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 01 Oct 2010 23:36:44 +0000 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests=FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of jchris@gmail.com designates 209.85.216.180 as permitted sender) Received: from [209.85.216.180] (HELO mail-qy0-f180.google.com) (209.85.216.180) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 01 Oct 2010 23:36:40 +0000 Received: by qyk5 with SMTP id 5so4195492qyk.11 for ; Fri, 01 Oct 2010 16:36:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:sender:received :in-reply-to:references:date:x-google-sender-auth:message-id:subject :from:to:content-type:content-transfer-encoding; bh=PfI6FtLkf01SCDUDQskF3cIBQcPoGd3lvnGwD+a58ns=; b=eJ+SllOyqbLoOZPJHIJv+dUFTolBC7I8BqIz6pXIPUCXiDd9TI0xOYBRFDFjMTcKAC C+b2ArJlDuMYMSQ+dyaVgcIfd6NDOvJTYiI7BNdcjZbfZiAjwQ/JFKBbx8GCIauJ/xWk EZQeoevy1JNwKSnud0m487ayt0U5eSNXGi208= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:content-type :content-transfer-encoding; b=d5H9o54Xz5ZLnmjt2A6Fek97yRDj580oecEEZfwLKNFOkzHWFqizHvqQ9uNEGdKyYt YvoXjKhGHI+pXy1wMCj/N4hM2yJoxHsMpt6f50eVPP7CWzRccvkqvfb/si3yHGF4eay6 op9EIk6VJtc3FrEM/Zutgo5O/3b579Rhm9WxU= MIME-Version: 1.0 Received: by 10.220.60.10 with SMTP id n10mr1421095vch.45.1285976177776; Fri, 01 Oct 2010 16:36:17 -0700 (PDT) Sender: jchris@gmail.com Received: by 10.220.42.4 with HTTP; Fri, 1 Oct 2010 16:36:17 -0700 (PDT) In-Reply-To: <20101001230530.CF7FB238890D@eris.apache.org> References: <20101001230530.CF7FB238890D@eris.apache.org> Date: Fri, 1 Oct 2010 16:36:17 -0700 X-Google-Sender-Auth: L9ZgNube47XbC23Yr-OSlE4tfH8 Message-ID: Subject: Re: svn commit: r1003701 - in /couchdb/trunk/src/couchdb: couch_view.erl couch_view_group.erl From: Chris Anderson To: dev Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On Fri, Oct 1, 2010 at 4:05 PM, wrote: > Author: jchris > Date: Fri Oct =A01 23:05:30 2010 > New Revision: 1003701 > > URL: http://svn.apache.org/viewvc?rev=3D1003701&view=3Drev > Log: > close db handles after using them to get view groups > I think this patch will help with the compaction file-delete stuff. I did that last view refactor before I understood completely how the file ref counts worked. Sorry about that. Should be all better now. > Modified: > =A0 =A0couchdb/trunk/src/couchdb/couch_view.erl > =A0 =A0couchdb/trunk/src/couchdb/couch_view_group.erl > > Modified: couchdb/trunk/src/couchdb/couch_view.erl > URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_view.er= l?rev=3D1003701&r1=3D1003700&r2=3D1003701&view=3Ddiff > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- couchdb/trunk/src/couchdb/couch_view.erl (original) > +++ couchdb/trunk/src/couchdb/couch_view.erl Fri Oct =A01 23:05:30 2010 > @@ -29,9 +29,7 @@ start_link() -> > =A0 =A0 gen_server:start_link({local, couch_view}, couch_view, [], []). > > =A0get_temp_updater(DbName, Language, DesignOptions, MapSrc, RedSrc) -> > - =A0 =A0% make temp group > - =A0 =A0% do we need to close this db? > - =A0 =A0{ok, _Db, Group} =3D > + =A0 =A0{ok, Group} =3D > =A0 =A0 =A0 =A0 couch_view_group:open_temp_group(DbName, Language, Design= Options, MapSrc, RedSrc), > =A0 =A0 case gen_server:call(couch_view, {get_group_server, DbName, Group= }) of > =A0 =A0 {ok, Pid} -> > @@ -41,10 +39,8 @@ get_temp_updater(DbName, Language, Desig > =A0 =A0 end. > > =A0get_group_server(DbName, GroupId) -> > - =A0 =A0% get signature for group > =A0 =A0 case couch_view_group:open_db_group(DbName, GroupId) of > - =A0 =A0% do we need to close this db? > - =A0 =A0{ok, _Db, Group} -> > + =A0 =A0{ok, Group} -> > =A0 =A0 =A0 =A0 case gen_server:call(couch_view, {get_group_server, DbNam= e, Group}) of > =A0 =A0 =A0 =A0 {ok, Pid} -> > =A0 =A0 =A0 =A0 =A0 =A0 Pid; > > Modified: couchdb/trunk/src/couchdb/couch_view_group.erl > URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_view_gr= oup.erl?rev=3D1003701&r1=3D1003700&r2=3D1003701&view=3Ddiff > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- couchdb/trunk/src/couchdb/couch_view_group.erl (original) > +++ couchdb/trunk/src/couchdb/couch_view_group.erl Fri Oct =A01 23:05:30 = 2010 > @@ -445,8 +445,8 @@ open_temp_group(DbName, Language, Design > =A0 =A0 =A0 =A0 =A0 =A0 def=3DMapSrc, > =A0 =A0 =A0 =A0 =A0 =A0 reduce_funs=3D if RedSrc=3D=3D[] -> []; true -> [= {<<"_temp">>, RedSrc}] end, > =A0 =A0 =A0 =A0 =A0 =A0 options=3DDesignOptions}, > - > - =A0 =A0 =A0 =A0{ok, Db, set_view_sig(#group{name =3D <<"_temp">>,lib=3D= {[]}, db=3DDb, views=3D[View], > + =A0 =A0 =A0 =A0couch_db:close(Db), > + =A0 =A0 =A0 =A0{ok, set_view_sig(#group{name =3D <<"_temp">>,lib=3D{[]}= , db=3DDb, views=3D[View], > =A0 =A0 =A0 =A0 =A0 =A0 def_lang=3DLanguage, design_options=3DDesignOptio= ns})}; > =A0 =A0 Error -> > =A0 =A0 =A0 =A0 Error > @@ -480,7 +480,8 @@ open_db_group(DbName, GroupId) -> > =A0 =A0 {ok, Db} -> > =A0 =A0 =A0 =A0 case couch_db:open_doc(Db, GroupId) of > =A0 =A0 =A0 =A0 {ok, Doc} -> > - =A0 =A0 =A0 =A0 =A0 =A0{ok, Db, design_doc_to_view_group(Doc)}; > + =A0 =A0 =A0 =A0 =A0 =A0couch_db:close(Db), > + =A0 =A0 =A0 =A0 =A0 =A0{ok, design_doc_to_view_group(Doc)}; > =A0 =A0 =A0 =A0 Else -> > =A0 =A0 =A0 =A0 =A0 =A0 couch_db:close(Db), > =A0 =A0 =A0 =A0 =A0 =A0 Else > > > --=20 Chris Anderson http://jchrisa.net http://couch.io