couchdb-erlang mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Алекс Zatvornitskiy <a.zatvornits...@gmail.com>
Subject Re: Inactive memory issues
Date Thu, 07 Feb 2013 16:58:47 GMT
+1 ) I don't think that `gdb` will give me answers. I've not had enough
knowledge about `couch_db`, `couch_doc` modules.


On Thu, Feb 7, 2013 at 6:42 PM, Paul Davis <paul.joseph.davis@gmail.com>wrote:

> I'm confused by what's generating the inactive memory messages. Some
> sort of Erlang tracing?
>
> On Thu, Feb 7, 2013 at 10:36 AM, Алекс Zatvornitskiy
> <a.zatvornitskiy@gmail.com> wrote:
> > Hi There! First of all, thanks a ton for CouchDB )
> >
> > I've couple of strange memory issues with R15B03 and couch db internals.
> > It'd be great to have a clearance for questions.
> >
> > Let's consider short code snippet:
> >
> > db_and_doc() ->
> >      {<<"seed_labeled_prod">>, <<"medianet:album:10000053">>}.
> >
> > write(Body) ->
> >      {DbName, DocId} = db_and_doc(),
> >      {ok, Db} = couch_db:open_int(DbName, []),
> >      couch_db:update_doc(Db, Body, []),
> >      couch_db:close(Db).
> >
> > read() ->
> >      {DbName, DocId} = db_and_doc(),
> >      {ok, Db} = couch_db:open_int(DbName, []),
> >      {ok, Doc} = couch_db:open_doc(Db, DocId),
> >      {Body} = couch_doc:to_json_obj(Doc, []),
> >      couch_db:close(Db),
> >      Body.
> >
> >
> > And few cases:
> >
> >
> > run(Scenario) ->
> >     spawn(fun() -> in_case(Scenario) end).
> >
> > in_case(single_process) ->
> >      Seq = lists:seq(1, 30000),
> >      Try = fun(_) -> write(read()) end,
> >      lists:foreach(Try, Seq);
> >
> > in_case(spawned_processes) ->
> >      Seq = lists:seq(1, 5000),
> >      Try = fun(_) ->
> >           spawn(fun() -> write(read()) end)
> >      end,
> >      lists:foreach(Try, Seq);
> >
> > in_case(spawned_update_processes) ->
> >      Seq = lists:seq(1, 30000),
> >      Try = fun(_) ->
> >           Doc = read(),
> >           spawn(fun() -> write(Doc) end)
> >      end,
> >      lists:foreach(Try, Seq).
> >
> >
> > My questions are:
> >
> > 1] Why `in_case(single_process)` produces so many `inactive` memory on
> Mac
> > OS X in case when `<<"medianet:album:10000053">>` document size is
> 67.19Kb?;
> > -- besides, `in_case(spawned_processes)` doesn't;
> >
> > 2] moreover, `in_case(spawned_update_processes)` still continue produce
> an
> > `inactive` memory;
> >
> > I think that Linux env has same behavior.
> >
> > Thanks for help!)
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message