You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by jc...@apache.org on 2010/10/02 01:05:30 UTC

svn commit: r1003701 - in /couchdb/trunk/src/couchdb: couch_view.erl couch_view_group.erl

Author: jchris
Date: Fri Oct  1 23:05:30 2010
New Revision: 1003701

URL: http://svn.apache.org/viewvc?rev=1003701&view=rev
Log:
close db handles after using them to get view groups

Modified:
    couchdb/trunk/src/couchdb/couch_view.erl
    couchdb/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.erl?rev=1003701&r1=1003700&r2=1003701&view=diff
==============================================================================
--- couchdb/trunk/src/couchdb/couch_view.erl (original)
+++ couchdb/trunk/src/couchdb/couch_view.erl Fri Oct  1 23:05:30 2010
@@ -29,9 +29,7 @@ start_link() ->
     gen_server:start_link({local, couch_view}, couch_view, [], []).
 
 get_temp_updater(DbName, Language, DesignOptions, MapSrc, RedSrc) ->
-    % make temp group
-    % do we need to close this db?
-    {ok, _Db, Group} =
+    {ok, Group} =
         couch_view_group:open_temp_group(DbName, Language, DesignOptions, MapSrc, RedSrc),
     case gen_server:call(couch_view, {get_group_server, DbName, Group}) of
     {ok, Pid} ->
@@ -41,10 +39,8 @@ get_temp_updater(DbName, Language, Desig
     end.
 
 get_group_server(DbName, GroupId) ->
-    % get signature for group
     case couch_view_group:open_db_group(DbName, GroupId) of
-    % do we need to close this db?
-    {ok, _Db, Group} ->
+    {ok, Group} ->
         case gen_server:call(couch_view, {get_group_server, DbName, Group}) of
         {ok, Pid} ->
             Pid;

Modified: couchdb/trunk/src/couchdb/couch_view_group.erl
URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_view_group.erl?rev=1003701&r1=1003700&r2=1003701&view=diff
==============================================================================
--- couchdb/trunk/src/couchdb/couch_view_group.erl (original)
+++ couchdb/trunk/src/couchdb/couch_view_group.erl Fri Oct  1 23:05:30 2010
@@ -445,8 +445,8 @@ open_temp_group(DbName, Language, Design
             def=MapSrc,
             reduce_funs= if RedSrc==[] -> []; true -> [{<<"_temp">>, RedSrc}] end,
             options=DesignOptions},
-
-        {ok, Db, set_view_sig(#group{name = <<"_temp">>,lib={[]}, db=Db, views=[View],
+        couch_db:close(Db),
+        {ok, set_view_sig(#group{name = <<"_temp">>,lib={[]}, db=Db, views=[View],
             def_lang=Language, design_options=DesignOptions})};
     Error ->
         Error
@@ -480,7 +480,8 @@ open_db_group(DbName, GroupId) ->
     {ok, Db} ->
         case couch_db:open_doc(Db, GroupId) of
         {ok, Doc} ->
-            {ok, Db, design_doc_to_view_group(Doc)};
+            couch_db:close(Db),
+            {ok, design_doc_to_view_group(Doc)};
         Else ->
             couch_db:close(Db),
             Else



Re: svn commit: r1003701 - in /couchdb/trunk/src/couchdb: couch_view.erl couch_view_group.erl

Posted by Filipe David Manana <fd...@apache.org>.
Seems likely to me as well.
+1

On Sat, Oct 2, 2010 at 12:36 AM, Chris Anderson <jc...@apache.org> wrote:
> On Fri, Oct 1, 2010 at 4:05 PM,  <jc...@apache.org> wrote:
>> Author: jchris
>> Date: Fri Oct  1 23:05:30 2010
>> New Revision: 1003701
>>
>> URL: http://svn.apache.org/viewvc?rev=1003701&view=rev
>> 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:
>>    couchdb/trunk/src/couchdb/couch_view.erl
>>    couchdb/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.erl?rev=1003701&r1=1003700&r2=1003701&view=diff
>> ==============================================================================
>> --- couchdb/trunk/src/couchdb/couch_view.erl (original)
>> +++ couchdb/trunk/src/couchdb/couch_view.erl Fri Oct  1 23:05:30 2010
>> @@ -29,9 +29,7 @@ start_link() ->
>>     gen_server:start_link({local, couch_view}, couch_view, [], []).
>>
>>  get_temp_updater(DbName, Language, DesignOptions, MapSrc, RedSrc) ->
>> -    % make temp group
>> -    % do we need to close this db?
>> -    {ok, _Db, Group} =
>> +    {ok, Group} =
>>         couch_view_group:open_temp_group(DbName, Language, DesignOptions, MapSrc, RedSrc),
>>     case gen_server:call(couch_view, {get_group_server, DbName, Group}) of
>>     {ok, Pid} ->
>> @@ -41,10 +39,8 @@ get_temp_updater(DbName, Language, Desig
>>     end.
>>
>>  get_group_server(DbName, GroupId) ->
>> -    % get signature for group
>>     case couch_view_group:open_db_group(DbName, GroupId) of
>> -    % do we need to close this db?
>> -    {ok, _Db, Group} ->
>> +    {ok, Group} ->
>>         case gen_server:call(couch_view, {get_group_server, DbName, Group}) of
>>         {ok, Pid} ->
>>             Pid;
>>
>> Modified: couchdb/trunk/src/couchdb/couch_view_group.erl
>> URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_view_group.erl?rev=1003701&r1=1003700&r2=1003701&view=diff
>> ==============================================================================
>> --- couchdb/trunk/src/couchdb/couch_view_group.erl (original)
>> +++ couchdb/trunk/src/couchdb/couch_view_group.erl Fri Oct  1 23:05:30 2010
>> @@ -445,8 +445,8 @@ open_temp_group(DbName, Language, Design
>>             def=MapSrc,
>>             reduce_funs= if RedSrc==[] -> []; true -> [{<<"_temp">>, RedSrc}] end,
>>             options=DesignOptions},
>> -
>> -        {ok, Db, set_view_sig(#group{name = <<"_temp">>,lib={[]}, db=Db, views=[View],
>> +        couch_db:close(Db),
>> +        {ok, set_view_sig(#group{name = <<"_temp">>,lib={[]}, db=Db, views=[View],
>>             def_lang=Language, design_options=DesignOptions})};
>>     Error ->
>>         Error
>> @@ -480,7 +480,8 @@ open_db_group(DbName, GroupId) ->
>>     {ok, Db} ->
>>         case couch_db:open_doc(Db, GroupId) of
>>         {ok, Doc} ->
>> -            {ok, Db, design_doc_to_view_group(Doc)};
>> +            couch_db:close(Db),
>> +            {ok, design_doc_to_view_group(Doc)};
>>         Else ->
>>             couch_db:close(Db),
>>             Else
>>
>>
>>
>
>
>
> --
> Chris Anderson
> http://jchrisa.net
> http://couch.io
>



-- 
Filipe David Manana,
fdmanana@gmail.com, fdmanana@apache.org

"Reasonable men adapt themselves to the world.
 Unreasonable men adapt the world to themselves.
 That's why all progress depends on unreasonable men."

Re: svn commit: r1003701 - in /couchdb/trunk/src/couchdb: couch_view.erl couch_view_group.erl

Posted by Chris Anderson <jc...@apache.org>.
On Fri, Oct 1, 2010 at 4:05 PM,  <jc...@apache.org> wrote:
> Author: jchris
> Date: Fri Oct  1 23:05:30 2010
> New Revision: 1003701
>
> URL: http://svn.apache.org/viewvc?rev=1003701&view=rev
> 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:
>    couchdb/trunk/src/couchdb/couch_view.erl
>    couchdb/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.erl?rev=1003701&r1=1003700&r2=1003701&view=diff
> ==============================================================================
> --- couchdb/trunk/src/couchdb/couch_view.erl (original)
> +++ couchdb/trunk/src/couchdb/couch_view.erl Fri Oct  1 23:05:30 2010
> @@ -29,9 +29,7 @@ start_link() ->
>     gen_server:start_link({local, couch_view}, couch_view, [], []).
>
>  get_temp_updater(DbName, Language, DesignOptions, MapSrc, RedSrc) ->
> -    % make temp group
> -    % do we need to close this db?
> -    {ok, _Db, Group} =
> +    {ok, Group} =
>         couch_view_group:open_temp_group(DbName, Language, DesignOptions, MapSrc, RedSrc),
>     case gen_server:call(couch_view, {get_group_server, DbName, Group}) of
>     {ok, Pid} ->
> @@ -41,10 +39,8 @@ get_temp_updater(DbName, Language, Desig
>     end.
>
>  get_group_server(DbName, GroupId) ->
> -    % get signature for group
>     case couch_view_group:open_db_group(DbName, GroupId) of
> -    % do we need to close this db?
> -    {ok, _Db, Group} ->
> +    {ok, Group} ->
>         case gen_server:call(couch_view, {get_group_server, DbName, Group}) of
>         {ok, Pid} ->
>             Pid;
>
> Modified: couchdb/trunk/src/couchdb/couch_view_group.erl
> URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_view_group.erl?rev=1003701&r1=1003700&r2=1003701&view=diff
> ==============================================================================
> --- couchdb/trunk/src/couchdb/couch_view_group.erl (original)
> +++ couchdb/trunk/src/couchdb/couch_view_group.erl Fri Oct  1 23:05:30 2010
> @@ -445,8 +445,8 @@ open_temp_group(DbName, Language, Design
>             def=MapSrc,
>             reduce_funs= if RedSrc==[] -> []; true -> [{<<"_temp">>, RedSrc}] end,
>             options=DesignOptions},
> -
> -        {ok, Db, set_view_sig(#group{name = <<"_temp">>,lib={[]}, db=Db, views=[View],
> +        couch_db:close(Db),
> +        {ok, set_view_sig(#group{name = <<"_temp">>,lib={[]}, db=Db, views=[View],
>             def_lang=Language, design_options=DesignOptions})};
>     Error ->
>         Error
> @@ -480,7 +480,8 @@ open_db_group(DbName, GroupId) ->
>     {ok, Db} ->
>         case couch_db:open_doc(Db, GroupId) of
>         {ok, Doc} ->
> -            {ok, Db, design_doc_to_view_group(Doc)};
> +            couch_db:close(Db),
> +            {ok, design_doc_to_view_group(Doc)};
>         Else ->
>             couch_db:close(Db),
>             Else
>
>
>



-- 
Chris Anderson
http://jchrisa.net
http://couch.io