db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Kristian Waagan <Kristian.Waa...@Sun.COM>
Subject Re: Problem with DELETE on big table
Date Tue, 10 Mar 2009 17:02:45 GMT
Emmanuel Cecchet wrote:
> Hi Kathey,
>
> I re-checked derby.log and there was an OOM error. 

Hello Emmanuel,

Do you know the maximum allowed size of the heap and the page cache size 
used when the OOME occurred? Also, have you overridden the page size, or 
are you using Blob/Clob in your tables?
I'm not saying this is caused by a maximum heap size that is too low, it 
may still be a Derby bug. Knowing the values of the properties above, 
may help us analyze the problem.

FYI, others have seen this problem as well, for instance:
http://www.nabble.com/Derby-DB---How-to-increase-Heap-Size---asadmin-start-database-td18958939.html


Regards,
-- 
Kristian

> What is interesting is that the delete completed anyway.
>
> 2009-03-09 05:31:34.731 GMT Thread[DRDAConnThread_3,5,main] (XID = 
> 18628704), (SESSIONID = 21), (DATABASE = nhmnetflowdb), (DRDAID = 
> NF000001.C4E3-4182998392339954695{22}), Failed Statement is: DELETE 
> FROM "SA"."NETFLOWDATA"
> java.lang.OutOfMemoryError: Java heap space
>    at java.util.Arrays.copyOf(Unknown Source)
>    at java.util.Arrays.copyOf(Unknown Source)
>    at java.util.ArrayList.ensureCapacity(Unknown Source)
>    at java.util.ArrayList.add(Unknown Source)
>    at 
> org.apache.derby.impl.store.raw.xact.Xact.addPostCommitWork(Unknown 
> Source)
>    at 
> org.apache.derby.impl.store.access.RAMTransaction.addPostCommitWork(Unknown 
> Source)
>    at 
> org.apache.derby.impl.store.access.heap.HeapController.queueDeletePostCommitWork(Unknown

> Source)
>    at 
> org.apache.derby.impl.store.access.conglomerate.GenericConglomerateController.delete(Unknown

> Source)
>    at 
> org.apache.derby.impl.sql.execute.RowChangerImpl.deleteRow(Unknown 
> Source)
>    at 
> org.apache.derby.impl.sql.execute.DeleteResultSet.collectAffectedRows(Unknown 
> Source)
>    at org.apache.derby.impl.sql.execute.DeleteResultSet.open(Unknown 
> Source)
>    at 
> org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown 
> Source)
>    at 
> org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown 
> Source)
>    at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
>    at org.apache.derby.impl.jdbc.EmbedStatement.executeUpdate(Unknown 
> Source)
>    at org.apache.derby.impl.drda.DRDAConnThread.parseEXCSQLIMM(Unknown 
> Source)
>    at 
> org.apache.derby.impl.drda.DRDAConnThread.processCommands(Unknown Source)
>    at org.apache.derby.impl.drda.DRDAConnThread.run(Unknown Source)
>
> Thanks for the help,
> Emmanuel
>
>>>
>>> I am running some tests trying to see the limits of Derby. I am 
>>> using Derby 10.4.2.0 on JDK 1.6.0 update 7, Windows Vista.
>>> I created a table with 1 millions rows (no index) and then executed 
>>> DELETE * FROM table.
>>> No error on the Derby console.
>>>
>>> I got the following exception in the client app (running locally on 
>>> the same machine):
>>> java.sql.SQLException: Network protocol exception: actual code 
>>> point, 4,692, does not match expected code point, 9,224.  The 
>>> connection has been terminated.
>> Usually a protocol exception is indicative of a bug, but it is 
>> unusual for it to come on a delete, which should be a fairly straight 
>> forward operation from a protocol perspective.  Was there anything of 
>> use in the derby.log?  Do you have reproduction for the issue that 
>> you can post to Jira?
>>
>> Thanks
>>
>> Kathey
>>
>>
>
>


Mime
View raw message