couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Adam Kocoloski (JIRA)" <>
Subject [jira] Updated: (COUCHDB-888) out of memory crash when compacting document with lots of edit branches
Date Sat, 25 Sep 2010 23:51:35 GMT


Adam Kocoloski updated COUCHDB-888:

    Attachment: 0001-fix-OOME-when-compacting-a-DB-with-many-edit-conflic-v2.patch

The first patch I uploaded was not correct.  The compactor needs to replace branch revisions
with ?REV_MISSING in the target revision tree.  This is a corrected patch.

> out of memory crash when compacting document with lots of edit branches
> -----------------------------------------------------------------------
>                 Key: COUCHDB-888
>                 URL:
>             Project: CouchDB
>          Issue Type: Bug
>          Components: Database Core
>            Reporter: Adam Kocoloski
>         Attachments: 0001-fix-OOME-when-compacting-a-DB-with-many-edit-conflic-v2.patch,
0001-fix-OOME-when-compacting-a-DB-with-many-edit-conflic.patch, key_tree_backtrace.txt.gz
> I have a database which will crash CouchDB if I try to compact it.  It causes beam.smp
to use all the memory on the server.  I caught it in the act one time and sorted the Erlang
processes by memory usage.  The process spawned to do the compaction turned out to be the
culprit.  I took a backtrace of the process and found that it was mapping a very large revision
tree.  I have reason to believe that the document has a large number (~1000s) of edit conflicts.
> I think part of the problem may be that the recursion in couch_key_tree:map_simple requires
each stack space for every iteration.  I'm not sure if it's possible to rewrite the algorithm
in a more memory-friendly way given the current tree structure.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message