Расскажите, пожалуйста, как производят оптимизацию расположения частей распределённой базы данных? Интересуют более-менее готовые программные продукты и примеры решения задач.
Т.е., например:
есть несколько соединённых серверов под распределённую БД по всей стране, которые одновременно являются и клиентами этой БД.
В базе данных есть множество таблиц.
Есть статистика по запросам с клиентов к конкретным таблицам.
Есть некоторая цена хранения данных на определённом сервере.
Есть некоторая цена передачи, известная для каждой пары сервер-клиент.
Задача: разнести таблицы (или части таблиц) по серверам самым оптимальным образом.
Для решения задачи можно применять различные эвристические алгоритмы: генетические алгоритмы, эволюционные стратегии, муравьиные алгоритмы и т.д.
Но мне не удалось найти каких-либо более-менее готовых программных средств, которые реализовывали бы эти алгоритмы.
Существуют ли такие средства для решения этой задачи применительно к каким-нибудь БД (Oracle или другие)?
Или под каждую систему реализуется узкоспециализированное средство?
Или никто просто не парится с решением этой задачи, а данные раскидываются на глазок?
И может быть у кого-нибудь есть примеры систем с распределённой базой данных, которые были оптимизированы таким путём?
Задача конечно очень интересна в абстрактном плане…
Практически-же есть одно БОЛЬШОЕ НО… Исходя из Вашей формулировки вы хотите _изначально_ сделать оценку и распределить базу, но по факту где гарантия что в процессе функционирования системы наступит дисбаланс и цена хранения где-то увеличится в РАЗЫ… Тогда по-хорошему надо заново проводить оптимизацию хранения, но имхо при достаточно больших объемах данных так не делается…
Имхо распределять базу надо все-таки исходя из ЛОГИКИ работы, знает которую только человек…