[elephant-devel] Berkeley DB error: Cannot allocate memory.

Red Daly reddaly at gmail.com
Mon Sep 22 02:25:10 UTC 2008


I have recently run into "Cannot allocate memory" problems with elephant on
a production server.  Unfortunately when one transaction is too large, it
seems to blow the database until a manual recover is done.

The occasional failure is slightly worrisome but it the whole database
requiring a manual recover from one extra-large transaction is a scary
thought for a live application with thousands of users.

Why does the memory allocation failure sour the whole database instead of
aborting a single transaction?  I think that elephant should try to
encapsulate this failure, recovering the database or whatever is necessary
to make the store usable for the next transaction.

Best,
Red Daly


On Sat, Jan 5, 2008 at 5:02 PM, Victor Kryukov <victor.kryukov at gmail.com>wrote:

> On Jan 4, 2008 2:54 AM, Ian Eslick <eslick at csail.mit.edu> wrote:
> > Hi Victor,
> >
> > Sounds like your transaction is blowing out the shared memory
> > allocated by Berkeley DB to store dirty pages.  This is caused by
> > transactions that are too large; putting an entire file of data could
> > well accomplish this.  (We really should change the error message to
> > be more informative in these cases).
> >
> > Try pushing with-transaction into the loop in import-movie as follows:
>
> Thanks for your suggestion, Ian - the problem was solved once I've
> moved with-transaction inside the collect-rating-info.
> _______________________________________________
> elephant-devel site list
> elephant-devel at common-lisp.net
> http://common-lisp.net/mailman/listinfo/elephant-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/elephant-devel/attachments/20080921/0bbcdaa7/attachment.html>


More information about the elephant-devel mailing list