HSQLDB запускает OutOfMemoryError при использовании вложенных запросов и БД находится в режиме только для чтения - PullRequest
0 голосов
/ 22 февраля 2019

Для сложного варианта использования с около 300000 запросов мы используем HSQLDB в режиме только для чтения.Через короткое время мы сталкиваемся с OutOfMemoryError.

. Проблема заключается в комбинации запросов подбора и только для чтения, все другие комбинации работают нормально и быстро:

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

Здесь - это простой репродуктор, включающий базу данных (только для чтения) для репродуктора.

Чтобы перейти к БД для чтения / записи, просто удалите строку «readonly = true» в репо.Свойства и запустите тест снова.

Я подозреваю, что класс RowStoreAVLHybrid является частью проблемы, потому что этот класс используется только в случае subselect + только для чтения.

Любая идеячто я могу сделать, кроме переключения базы данных на чтение / запись, чего я хочу избежать любой ценой?

1 Ответ

0 голосов
/ 03 марта 2019

Для этой ошибки не было никакого обходного пути.Он был восстановлен, и исправление было внесено в ветку кода dev-three для выпуска HSQLDB версии 2.5.0.

...