db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mayuresh Nirhali <Mayuresh.Nirh...@Sun.COM>
Subject Re: [jira] Commented: (DERBY-606) SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE fails on (very) large tables
Date Fri, 17 Nov 2006 15:14:34 GMT
Thanks, for your response, Mike.

I did consider this and the current repro takes about 4-5 mins and 42MB 
of disk space.  I was able to hit this bug with just creating enough 
records that will create 2nd AllocPage and delete enough records so that 
the 2nd Alloc page is empty (to get newHighetPage = -1). I was hoping 
that this 5 mins increase in overall derbyall run testing time will be 
accepted. Please let me know.

I believe this is a good case to be covered in derbyall. I was planning 
to just extend the test1 in OnlineCompressTest to include another 
number_of_rows parameter which is higher than 4000. As you mentioned in 
your reply, this extension might cause Lock escalation, I will try to 
find some work-around. I might have to create another testX method at 
worse I think.


Mike Matrigali wrote:

> also note that depending on the amount of disk space and the time to 
> create your "(very) large table" it may not be appropriate to add your
> case to this test which is run as part of everyone's nightly run and
> may need to be run by every developer as part of a checkin.  I don't
> think there is a fixed requirement, but I think for instance we decided
> that tests dealing with 2 gig blobs were too big to be forced into
> nightly dev run.
> How much disk space and time does your case take?
> There is another suite of tests called largeData which is intended for
> tests with large disk requirements.  If it saves you time you should
> feel free to extend the OnlineCompressTest which your own test class and
> reuse as much code as possible.
> Mayuresh Nirhali (JIRA) wrote:
>>     [ 
>> http://issues.apache.org/jira/browse/DERBY-606?page=comments#action_12450785 
>> ]             Mayuresh Nirhali commented on DERBY-606:
>> ----------------------------------------
>> I looked at the OnlineCompressTest and realized that to reproduce 
>> this case, the simplest way is to increase the number of rows added 
>> to the table in one of the existing testcases. However, I see a 
>> following comment in the testcase,
>> <snip>
>>      * 4000 rows  - reasonable number of pages to test out, still 1 
>> alloc page
>>      *
>>      * note that row numbers greater than 4000 may lead to lock 
>> escalation
>>      * issues, if queries like "delete from x" are used to delete all 
>> the      * rows.
>> </snip>
>> This is very relevant to the testcase which I would like to add and 
>> so, would like to know the Lock Escalation issue here. Has anyone 
>> seen this kind of issue before ? any pointers ??
>> The repro attached to the bug has almost similar testcase, I have not 
>> seen any problems with that so far. So, it might be that the Lock 
>> Escalation issue has already been fixed. (I did not find any related 
>> JIRA for this though). Can someone please confirm this ?? I can 
>> update the comments if that problem has been fixed.
>> Thanks
>>> SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE fails on (very) large tables
>>> --------------------------------------------------------------------
>>>                Key: DERBY-606
>>>                URL: http://issues.apache.org/jira/browse/DERBY-606
>>>            Project: Derby
>>>         Issue Type: Bug
>>>         Components: Store
>>>   Affects Versions:
>>>        Environment: Java 1.5.0_04 on Windows Server 2003 Web Edition
>>>           Reporter: Jeffrey Aguilera
>>>        Assigned To: Mayuresh Nirhali
>>>            Fix For:
>>>        Attachments: A606Test.java, derby606_v1.diff
>>> following error messages when applied to a very large table (>2GB):
>>> Log operation null encounters error writing itself out to the log 
>>> stream, this could be caused by an errant log operation or internal 
>>> log buffer full due to excessively large log operation. SQLSTATE: 
>>> XJ001: Java exception: ': java.io.IOException'.
>>> or
>>> The exception 'java.lang.ArrayIndexOutOfBoundsException' was thrown 
>>> while evaluating an expression. SQLSTATE: XJ001: Java exception: ': 
>>> java.lang.ArrayIndexOutOfBoundsException'.
>>> In either case, no entry is written to the console log or to derby.log.

View raw message