-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
could you post the query and the associated base table and index ddl which caused this. The optimizer tries to only pick hash join when it thinks the memory needed will be small, so you may have found an optimizer bug - or maybe you need an index somewhere?
Gerald Khin (JIRA) wrote: | HashJoinStrategy leads to java.lang.OutOfMemoryError | ---------------------------------------------------- | | Key: DERBY-106 | URL: http://nagoya.apache.org/jira/browse/DERBY-106 | Project: Derby | Type: Bug | Reporter: Gerald Khin | | | My application is running out of memory: I encounterd a java.lang.OutOfMemoryError. I used -Xmx256M. Unfortunatley, I cannot spend an arbitrary amount of JVM memory. | | Then, I commented out the line in class OptimizerFactoryImpl which was adding the HashJoinStrategy to the set of Join strategies: | | if (joinStrategySet == null) | { | // JoinStrategy[] jss = new JoinStrategy[2]; | JoinStrategy[] jss = new JoinStrategy[1]; | jss[0] = new NestedLoopJoinStrategy(); | // jss[1] = new HashJoinStrategy(); | joinStrategySet = jss; | } | | And with these changes the OutOfMemoryError has gone away! And it works even with -Xmx128M!!! | | So I guess that there is a major memory issue with this HashJoin strategy implementation. | | If it turns out to be too complicated to make the memory consumption more predicatble or even bounded to some configurable limit, then I need at least as a workaround a way to turn off the HashJoin strategy completely: I did it by patching and building my own derby.jar, but if there would be an official solution with some kind of switch like a system property, it would be great! | | | -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.5 (MingW32) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
iD8DBQFBwwqNEpeslyHqPs0RAh/4AKCsNJx6EVb9C7tpHigkWPVzmvypqQCglf3z RE1m0P3KYG8lqy0yoMma/F8= =2sh1 -----END PGP SIGNATURE-----
