[ http://issues.apache.org/jira/browse/DERBY-606?page=all ]
Mayuresh Nirhali updated DERBY-606:
-----------------------------------
Attachment: derby606_impl-v5.diff
derby606_upgrade-v5.diff
Thanks Suresh for catching that!
I have created new patches based on your feedback and they are attached.
Regarding the UpgradeTest with 10400 rows, I believe it is good to test the
soft and hard upgrade when the edge case is hit. Hence I use the case almost as
is from OnlineCompressTest.
This case is not only about large size table data but it happens when data
stored (in multiple allocation pages) is deleted to an extent where the last
allocation page is completely empty. In this case, when the compress is called,
the operation does not complete successfully because the log record is not
written due to the fact that newHighestPage is negative.
To simulate this, I created a table with data (for a particualr db schema) that
will just grow beyond the size that can be managed by 1 alloc page. Then
deleted enough data to make sure the last allocpage is empty. The combination
of 10400 + the db schema is optimized for minimum time. I could not get the
other 2 db schemas in OnlineCompressTest to work for this case, for a shorter
duration.
This is a large patch and Comments on this new patch are most welcome.
-Mayuresh
> 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: 10.1.1.0
> Environment: Java 1.5.0_04 on Windows Server 2003 Web Edition
> Reporter: Jeffrey Aguilera
> Assigned To: Mayuresh Nirhali
> Fix For: 10.3.0.0
>
> Attachments: A606Test.java, derby606-v2.diff, derby606-v3.diff,
> derby606_impl-v4.diff, derby606_impl-v5.diff, derby606_upgrade-v4.diff,
> derby606_upgrade-v5.diff, derby606_v1.diff
>
>
> SYSCS_UTIL.SYSCS_INPLACE_COMPRESS_TABLE fails with one of the 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.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira