Уменьшение использования памяти для пакетных вставок JDOJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Уменьшение использования памяти для пакетных вставок JDO

Сообщение Anonymous »

У нас есть веб-приложение Java, использующее Data Nucleus 1.1.4/JDO 2.3 для сохранения.

Существует операция пакетного импорта, которая сохраняет большое количество объектов JDO в один выстрел. У нас были ситуации, когда выдавались ошибки OutOfMemoryError, поскольку данные для импорта были очень большими.

Планируемый шаблон заключался в том, чтобы пройти через входной поток, проанализировать строку, создать экземпляр объекта JDO, вызвать makePersistent, а затем освободить ссылку на объект на объект JDO, чтобы сохраняйте объем памяти неизменным независимо от размера входных данных.

При выполнении некоторого анализа кучи во время этой операции выяснилось, что экземпляры объектов JDO накапливаются и занимают большой кусок памяти до момента фиксации случается. Несмотря на то, что мы не храним ссылки на них, похоже, что реализации PersistenceManager и Transaction Data Nucleus ссылаются на объект org.datanucleus.ObjectManagerImpl, который содержит список «грязных» объектов JDO. экземпляры (фактически копии оригинала). Вероятно, для этого есть веская причина, но я был немного удивлен тем, что инфраструктуре необходимо хранить копии каждого объекта JDO. Они отпускаются после фиксации, но, учитывая, что мы хотим, чтобы все вставки происходили атомарно, нам нужно запустить эту операцию внутри транзакции. В текущем состоянии использование памяти линейно коррелирует с размером входных данных, что открывает нам возможности возникновения ошибок OutOfMemoryError — если не для одной операции, то для параллельных операций.

Есть ли какие-либо советы или рекомендации по обеспечению максимально равномерного объема памяти для такой операции пакетной вставки JDO?

Подробнее здесь: https://stackoverflow.com/questions/167 ... do-inserts
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • JDO - Обновление объекта
    Anonymous » » в форуме JAVA
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Уменьшение использования памяти PHP при чтении из MYSQL
    Гость » » в форуме Php
    0 Ответы
    26 Просмотры
    Последнее сообщение Гость
  • Уменьшение использования памяти PHP во время чтения из MySQL
    Anonymous » » в форуме Php
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Отправка вставок с помощью JDA
    Anonymous » » в форуме JAVA
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Балансировка двоичного дерева поиска после нескольких вставок
    Anonymous » » в форуме JAVA
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»