Параллелизм с HikariCP - PullRequest
       22

Параллелизм с HikariCP

0 голосов
/ 20 ноября 2018

У меня есть Java-программа, которая обновляет таблицу в базе данных Oracle.

Я пробовал использовать одно соединение JDBC, и оно очень медленное и занимает несколько часов.

Я пытаюсь использовать HikariCP, чтобы создать пул соединений, и несколько потоков получают отдельные соединения.из пула.

Предположим, у меня 6 потоков и 5 подключений к базе данных в пуле, а 5 потоков вызывают метод HikariDataSource.getConnection().Получит ли каждый из них отдельный объект соединения с БД?

Если да, то будет ли поток в состоянии блокировки / ожидания, когда он вызывает метод getConnection или выполняет оставшийся код с нулевым соединением?

Если нет, как мне получить их отдельные соединения?

1 Ответ

0 голосов
/ 20 ноября 2018

Получит ли каждый из них отдельный объект соединения с БД?

Каждый поток запрашивает соединение, если доступно, получает отдельный объект соединения БД

Если да, то будет ли поток в состоянии блокировки / ожидания, когда он вызывает метод getConnection или выполняет оставшийся код с нулевым соединением?

Если доступное соединение отсутствует, оно будет ждать, пока соединение не будет освобождено, и примет его, если оно не установит соединение до истечения времени ожидания, будет выдано исключение тайм-аута

Если нет, как мне получить их отдельные соединения?

Не имеет значения, потому что каждый поток получит различное соединение

О HikariCP и параллелизм :

HikariCP содержит настраиваемую коллекцию без блокировки, которая называется ConcurrentBag. Идея была заимствована из класса C # .NET ConcurrentBag, но внутренняя реализация совсем другая. ConcurrentBag обеспечивает ...

  • Конструкция без блокировки
  • ThreadLocal caching
  • Очередь кражи
  • Прямая оптимизация передачи обслуживания

... что приводит к высокой степени параллелизма, чрезвычайно низкой задержке и минимизации случаев ложного обмена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...