| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > СУБД, общие вопросы > горизонтальное расщепление таблиц |
| Автор: tatan 6.11.2009, 08:57 |
| Вопрос больше теоретический. Предположим мы пишем собственную систему управления БД. Предусмотрено, что БД работает в некоем кластере, состоящем из минимум 3 серверов - мастер кластера, нода1, нода2, причем для балансировки нагрузки на ноды мастер кластера производит горизонтальное расщепление таблиц БД и помещает их на разные ноды. Например, в БД есть таблицы - T1, T2 ... Tn. Мастер кластера расщепил таблицы БД ровно пополам между нодами и в ноде 1 теперь есть таблицы T1_1, T2_1 ... Tn_1 и в ноде 2 вторые половины таблиц T1_2, T2_2 ... Tn_2. Далее, мастер кластера получает произвольный запрос на выборку данных. Интересует меня: - результаты запроса над множеством нерасщепленных таблиц равен или нет слиянию результатов запросов над расщепленными подмножествами БД. - если не равно, есть ли разумная стратегия получения правильного результата запроса в случае расщепленных таблиц? - можно подумать еще о том же самом в случае запроса на изменение данных. |
| Автор: tatan 6.11.2009, 09:46 |
| Не удалось найти описания архитектур СУБД с требуемой детализацией, с описанием алгоритмов выполнения запросов на расщепленных данных. Если укажешь пальцем где - буду благодарен. Может неудачно объяснил - нет никакой синхронизации между нодами, ноды действуют автономно. Вот именно, каждая нода хранит только свою часть данных. Если результат запроса равен сумме результатов, то никаких дополнительных данных в нодах не нужно. Если нет, надо понять что необходимо дополнительно хранить на нодах и как получить консолидированный результат запроса, проведя параллельно операции запросов на нодах. |
| Автор: Zloxa 6.11.2009, 10:01 | ||
| откуда взялись термины "расщепление", "горизонтальное"? расщепи плиз горизонтально:
|
| Автор: tatan 6.11.2009, 10:13 |
| горизонтальное расщепление - расщепление по строкам. Вертикальное - по столбцам. Насколько понимаю, это более-менее устоявшиеся термины. Встретить эти понятия можно например в описании функция распределенных СУБД, например здесь http://mrivkin.narod.ru/Publ/RASPBD.htm |
| Автор: Zloxa 6.11.2009, 10:32 |
Это был как бы намек поискать ответы на вопросы там, где вы вычитали термины. Общеупотребимость этих терминов можно оценить http://www.google.ru/search?rlz=1C1GGLS_ruRU327RU327&sourceid=chrome&ie=UTF-8&q=%22%D0%A0%D0%90%D0%A1%D0%A9%D0%95%D0%9F%D0%9B%D0%95%D0%9D%D0%98%D0%95+%D0%A2%D0%90%D0%91%D0%9B%D0%98%D0%A6%22 А что со вторым вопросом? Как расщепить приведенный пример? Или как понять что его нельзя расщеплять? |
| Автор: tatan 6.11.2009, 10:35 |
| Расщепляю: Node 1 ents id 1 vals id 1 entvals ent_id val_id 1 1 1 2 Node 2 ents id 2 vals id 2 entvals ent_id val_id 2 1 2 2 |
| Автор: Zloxa 6.11.2009, 10:38 | ||
ну а теперь представте объединение результатов запроса
и сравните с тем, какой он должен быть на самом деле. И тему можно закрывать. |
| Автор: tatan 6.11.2009, 10:38 |
| Попробуй поискать так по строке distributed DBMS split table http://www.google.ru/search?hl=ru&rlz=1C1GGLS_ruRU327RU327&newwindow=1&q=distributed+DBMS+split+table&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=&aq=f&oq= |
| Автор: Zloxa 6.11.2009, 10:48 |
тоже http://www.google.ru/search?hl=ru&rlz=1C1GGLS_ruRU327RU327&newwindow=1&q=%22horizontal+table+split%22&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=&aq=f&oq= |
| Автор: tatan 6.11.2009, 10:53 |
| Согласен. Это говорит о том, что может это неинтересно никому. А мне интересно. А сл. часть моего вопроса - стратегия получения правильного результата? |
| Автор: Zloxa 6.11.2009, 11:02 | ||
| Я не являюсь специалистом по распределенным БД. Я не знаю как обстоят дела с кластерезацией в отличных от оракла системах, я не являюсь экспертом в архитектуре оракла. Но я слышал что ораклиный кластер подразумевает работу несколких нод лишь с одной корзиной ![]() http://download-uk.oracle.com/docs/cd/B28359_01/rac.111/b28254/admcon.htm#RACAD7479 Раскидать жа нагрузку по дискам у оракли есть другие средства.
Я бы забил на этот путь как на неперспективный. |
| Автор: tatan 6.11.2009, 11:50 |
| Не согласен, что путь неперспективный. Призываю в пост экспертов |
| Автор: Zloxa 6.11.2009, 11:53 | ||||
Обоснуй да, да! Просим, просим! Добавлено @ 12:01 Предлагаю расщепить еще один набор
и помедетировать над запросом
|
| Автор: tatan 6.11.2009, 12:27 |
| Вот здесь есть полезное http://en.wikipedia.org/wiki/Shard_%28database_architecture%29 Во общем, надо искать и найдется |