[ 
https://issues.apache.org/jira/browse/DERBY-3009?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12542608
 ] 

Andrew Brown commented on DERBY-3009:
-------------------------------------

I have run accross this issue also and I narrowed it down to index building.  I 
have a few tables with 10-30 million records and when building indexes on them 
I can watch the memory used grow until it crashes.  The only way around this 
for me has been to restart Derby after each index is built (not really a good 
thing is a production environment).  This happens both in IJ and through a java 
application.  We changed the  java code to commit and close the connection 
after each index build and that seemed to help, but the problem would still 
manifest itself.

I played around with some of the memory settings and by setting 
derby.storage.pageSize to a bigger size than the default size, this just caused 
the crash to happen faster.  I am not a Java developer but it seems that once 
an index is built, the buffer still has a lock on the memory and it isn't being 
freed.

> Out of memory error when creating a very large table
> ----------------------------------------------------
>
>                 Key: DERBY-3009
>                 URL: https://issues.apache.org/jira/browse/DERBY-3009
>             Project: Derby
>          Issue Type: Bug
>    Affects Versions: 10.2.2.0
>         Environment: Win XP Pro
>            Reporter: Nick Williamson
>         Attachments: DERBY-3009.zip
>
>
> When creating an extremely large table (c.50 indexes, c.50 FK constraints), 
> IJ crashes with an out of memory error. The table can be created successfully 
> if it is done in stages, each one in a different IJ session.
> From Kristian Waagan:
> "With default settings on my machine, I also get the OOME.
> A brief investigation revealed a few things:
>   1) The OOME occurs during constraint additions (with ALTER TABLE ... 
> ADD CONSTRAINT). I could observe this by monitoring the heap usage.
>   2) The complete script can be run by increasing the heap size. I tried with 
> 256 MB, but the monitoring showed usage peaked at around 150 MB.
>   3) The stack traces produced when the OOME occurs varies (as could be 
> expected).
>   4) It is the Derby engine that "produce" the OOME, not ij (i.e. when I ran 
> with the network server, the server failed).
> I have not had time to examine the heap content, but I do believe there is a 
> bug in Derby. It seems some resource is not freed after use."

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

Reply via email to