Репликация базы данных H2 в памяти на postgresql (и наоборот) - PullRequest
0 голосов
/ 09 октября 2019

У меня есть проект Java Spring, который много читает из базы данных. База данных, которую я имею в наличии, является общей базой данных postgresql на удаленной машине, и получать данные из нее довольно медленно, особенно когда я много работаю взад-вперед.

Когда я занимаюсь локальным тестированием и разработкой, я использую встроенную базу данных H2 в памяти. Вещи легко идут в 100 раз быстрее.

Это заставило меня задуматься. Есть ли способ использовать встроенную базу данных H2 в памяти, чтобы:

  • Манипуляции с данными (INSERT, UPDATE, DELETE) ("в конце концов") реплицировались в базу данных PostgreSQL
  • При запуске / перезапуске проекта Spring база данных H2 автоматически заполняется данными сервера PostgreSQL

Это позволило бы мне использовать быстрый H2, чтобы обеспечить бесперебойную работу пользователя, находясь нав то же время также хранение данных в долговременном хранилище данных. В некотором смысле, я бы использовал H2 как полностью кэшированную версию базы данных PostgreSQL.

Есть ли известный / стандартизированный способ решения этой проблемы? Google для H2 и PostgreSQL и репликация дают мне результаты при переходе от одного к другому, но я не нахожу особого в том, чтобы использовать один в качестве своего рода кеша для другого.

1 Ответ

0 голосов
/ 10 октября 2019

Я по-прежнему в поисках сфокусированного на Spring / JPA / Hibernate ответа , но если его нет, возможно, я нашел альтернативный домен для расследования. Специальное программное обеспечение для репликации базы данных может справиться с этим. В частности, я обнаружил SymmetricDS , который (кажется, я только бегло взглянул на документацию), как будто он может быть встроен в мое приложение Spring, выполнить первоначальную загрузку встроенногобаза данных Н2 памяти при запуске, а затем изменения данных потока данных в удаленной базе данных.

(я никоим образом не связан с SymmetricDS, похоже, что может быть решением. )

...