Java Play Framework + база данных H2, производительность параллельных операций

У меня есть приложение play framework, которое использует базу данных H2. В общем, приложение имеет несколько запланированных «заданий», которые вставляют данные в базу данных (из внешней базы данных Firebird), и уровень контроллера, который представляет сохраненные данные пользователю в формате xml через запросы на получение.

Мой вопрос заключается в том, что, хотя есть задание по вставке данных в базу данных, даже нескольких строк, база данных, похоже, не отвечает, пока операция вставки не будет завершена. (Выбранные запросы ожидают завершения другой операции).

я использую стандартную строку подключения Play Framework H2 с добавлением «MVCC = TRUE».

Кстати. Сервер работает на платформе Windows + сервер Apache Tomcat.

Есть ли какие-либо дополнительные параметры или настройки, которые я могу сделать, чтобы решить эту проблему «неотзывчивости»?


person dreampowder    schedule 03.03.2013    source источник
comment
Сколько времени занимает операция вставки? Обычно вставки в базу данных H2 выполняются очень быстро, так что это не должно быть проблемой.   -  person Thomas Mueller    schedule 03.03.2013


Ответы (1)


По умолчанию H2 сериализует операторы. У вас есть несколько вариантов:

  • Вставляйте меньше данных за раз (меньше строк в каждом операторе), чтобы база данных не блокировалась на долгое время
  • Включить многопоточность с помощью параметра multi_threaded, но в этом случае нельзя использовать параметр mvcc особенность к сожалению.
  • Используйте другую базу данных.
person Thomas Mueller    schedule 03.03.2013
comment
я постараюсь работать с многопоточным вариантом и расскажу о результатах.. Но пока я не думаю о переходе с базы данных h2, так как ищу встроенную базу данных, и она отлично работает, кроме этой вещи.. - person dreampowder; 04.03.2013
comment
Нет, multi_threaded не помог, в любом случае я решил остаться таким. эти блокировки занимают всего несколько секунд, и это происходит, если данные запрашиваются одновременно с операциями обновления. Спасибо, в любом случае - person dreampowder; 06.03.2013