使用嵌套查询且数据库处于只读模式时,HSQLDB会触发OutOfMemoryError

时间:2019-02-22 06:26:46

标签: hsqldb

对于具有约300000个查询的复杂用例,我们在只读模式下使用HSQLDB。片刻之后,我们遇到了OutOfMemoryError

问题是子选择查询和只读的组合,所有其他组合都能正常且快速地工作:

               simple select   nested select
DB read only   works           OOM
DB read/write  works           works

Here是一个简单的复制器,包括用于复制器的(只读)数据库。

要切换到读/写数据库,只需删除repo.properties中的“ readonly = true”行,然后再次运行测试。

我怀疑RowStoreAVLHybrid类是问题的一部分,因为该类仅在subselect + read-only情况下使用。

除了我想将数据库切换为读/写之外,我还能做什么?我想不惜一切代价避免什么?

1 个答案:

答案 0 :(得分:0)

此错误没有解决方法。它已经过重新设计,并且针对HSQLDB 2.5.0版发布了针对dev-three代码分支的修复程序。