Пул соединений с базами данных Java для нескольких баз данных (Shards) - PullRequest
1 голос
/ 22 сентября 2009

Мне было интересно, как лучше всего реализовать пул соединений с БД для веб-приложения, использующего шарды. Из того, что я могу сказать, большинство (все?) Реализации с открытым исходным кодом поддерживают только одну базу данных. По крайней мере, я не нашел тот, который поддерживает осколки.

Кроме того, хотя я использую шарды, не все базы данных будут иметь одинаковую схему, как и другие базы данных. Я не уверен, если это важно упомянуть.

Единственное решение, которое я могу найти до сих пор, - это написать слой, который расположен поверх нескольких разных пулов. Каждый отдельный пул может быть любой из доступных отдельных реализаций базы данных.

Уже есть решения для этого? Какова была бы лучшая техника в противном случае?

Заранее спасибо,

Стивен.

Ответы [ 3 ]

3 голосов
/ 22 сентября 2009

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

Если вас беспокоит, что не все базы данных имеют одинаковые схемы, вы можете добавить дополнительную конфигурацию отслеживания схемы в свой класс менеджера, чтобы он знал, какие сегменты могут обслуживать схему. То есть вам нужно отслеживать схему для разделения информации в дополнение к пулу базы данных. На самом деле это не слишком сложная работа, так как вам все равно понадобится конфигурация шарда, чтобы определить, как извлечь правый осколок из пула (например, идентификатор пользователя mod 10 = 1 должен вытянуть из осколка 1)

Удачи

1 голос
/ 22 сентября 2009

Существует проект hibernate shards , на который можно взглянуть.

1 голос
/ 22 сентября 2009

Какой технологический стек вы используете в настоящее время? Я знаю, что у Hibernate есть проект шардинга, но я им не пользовался, просто слушал некоторые подкасты об этом.

Более подробную информацию об этом можно найти здесь . Кроме того, ранее упомянутый подкаст можно найти здесь .

Подкаст объясняет, что некоторые из проблем с шардингом вообще, некоторые из проблем, о которых позаботился плагин Hibernate, а затем объясняет их ожидаемый путь вперед. Надеюсь, это немного поможет!

...