У меня есть машина, которая вставляет около 502 000 000 строк в BDB JE.Пример ключа и значения:
juhnegferseS0004-47-19332 39694.290336
Все ключи и значения примерно одинаковой длины.JVM запускается со следующими параметрами:
-Xmx9G -Xms9G -XX:+UseConcMarkSweepGC -XX:NewSize=1024m -server
Но, тем не менее, когда он достигает ~ 50 000 000 строк, JVM «убит» (я просто получаю сообщение «Убит», не знаю как /кем он убивает).Я просто думаю, что он пытается запустить сборщик мусора, а затем он не может освободить достаточно памяти или что-то в этом роде.Но с таким значением -Xmx, я думаю, проблем не должно быть.
Я использую deferredWrites, а размер файлов журнала равен 100 МБ.Переключение на базовый API из DPL не имело никакого значения.
Я использую JDK 6.0 и SUSE x86_64 с 12 ГБ ОЗУ.Существуют и другие процессы, которым требуется остаток ОЗУ, поэтому на самом деле не может выделить более 9 ГБ для этой задачи вставки.
JVM:
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode)
Любые советы по устранению этой проблемы:оценили.