Hibernate и UNNEST — утечка памяти с течением времени из-за кешаJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Hibernate и UNNEST — утечка памяти с течением времени из-за кеша

Сообщение Anonymous »

Мы используем спящий режим в нашей Java-службе, которая обрабатывает огромное количество входящих сообщений от SQS, обрабатывает их и, соответственно, вставляет/обновляет/удаляет из базы данных Postgres.
Мы выяснили что через некоторое время наш модуль убивает наш сервис из-за роста памяти.
После исследования я обнаружил, что у меня есть ConcurrentHashMap, который растет и растет со временем обработки сообщений. . Проверка последних узлов показывает, что существует множество типов значений org.hibernate.type.descriptor.jdbc.ArrayJdbcType#.....
В сервисе их нет используйте простые методы org.springframework.data.repository.Repository, но настраиваемый запрос для ускорения процесса нашей базы данных.
Наши запросы выглядят следующим образом:

Код: Выделить всё

@Modifying
@Query(value =
"""
INSERT INTO my_table (id, key, name)
SELECT id, key, name
FROM UNNEST(:ids\\:\\:uuid[], :keys\\:\\:varchar[], :names\\:\\:varchar[])
"""
, nativeQuery = true)
void insertData(UUID[] ids, String[] keys, String[] names);
или обновления лайков, или удаление и всё остальное. Это был просто пример для упрощения.
Я уверен, что эти запросы являются причиной того, что спящий режим создает дескрипторы типов, но ..
< ol>
[*]Это нормальный рост памяти?
[*]Есть ли способ предотвратить это?
[*]Есть ли лучший способ способ выполнения таких запросов как с использованием памяти, так и с эффективностью в БД и в службе?
[*]Я начал создавать UserType, чтобы объявить свой параметр, который будет храниться ( id,key,name), но я много с этим боролся и не уверен, что это вообще сработает. Можно?
[*]Я открыт для любых других предложений по моей проблеме.

Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/791 ... e-to-cache
Ответить

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

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

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

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

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