Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Большая распределенная система / 25 сообщений из 32, страница 1 из 2
27.08.2007, 16:41
    #34755602
PeshaShulc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Большая распределенная система
Порекомендуйте возможные реализации такой задачи:
есть большая система с одной центральной ДБ (А) и несколькими инстансами ДБ другого типа (B) для накопления и кэширования данных. Сейчас количество баз типа B может быть до 50 и все работает сбалансированно.
Следующая версия должна поддерживать 1000 баз типа B. Поскольку все они ходят в базу A я вижу в этом проблему. Логично было бы поддерживать копии A для нескольких баз типа B. (95% запросов B->A на чтение из пяти таблиц по милиону записей, запросы A->B 100% параллельный вызов процедур).

Какие возможны технологии реализации?
...
Рейтинг: 0 / 0
28.08.2007, 11:44
    #34757341
PeshaShulc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Большая распределенная система
я несколько удивлен отсутсвием реакции ??????
- в моем вопросе много букав и никто не в силах дочитать до конца
- новичкам форума не отвечают в принципе?
- никто никогда не делал репликации?
...
Рейтинг: 0 / 0
28.08.2007, 12:25
    #34757583
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Большая распределенная система
Ты слишком строг к нам...
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
28.08.2007, 12:47
    #34757729
мод
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Большая распределенная система
PeshaShulcесть большая система
Пользователей сколько ? Это и определяет масштаб системы.
...
Рейтинг: 0 / 0
28.08.2007, 13:41
    #34758045
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Большая распределенная система
PeshaShulcя несколько удивлен отсутсвием реакции
Ваш вопрос не дает возможности дать на него короткий и толковый ответ. Коротким был бы "любые", но вряд ли Вы сочтете его в должной мере конструктивным.
...
Рейтинг: 0 / 0
28.08.2007, 14:07
    #34758164
PeshaShulc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Большая распределенная система
пользователей интерактивных не много порядка тысячи
но система большая потому что в реальном времени принимает 50М записей в день, а следующая версия должна принимать милиард записей в день.
...
Рейтинг: 0 / 0
28.08.2007, 14:31
    #34758265
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Большая распределенная система
PeshaShulcа следующая версия должна принимать милиард записей в день.
То есть в среднем - 11'500 записей в секунду, в пике - порядка 50'000. Боюсь, системе с "центральной БД" при такой нагрузке придется нелегко даже при коротких записях; это конечно существенно зависит от того, из скольких источников и какими порциями приходят данные, но вполне вероятно, я бы сразу задумался о кардинально распределенной системе. Также цифры не очень бьются с основной операцией "чтение из пяти таблиц по миллиону записей" - маловато будет, получается глубина не более получаса.

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

В общем, не верю я, что сейчас некто ГУРУ коротко и полно раскроет рецепт "как строить подобные системы", тем более сомневаюсь я, что на форуме много людей, не понаслышке знакомых с такой нагрузкой (я, например, к таким не отношусь).
...
Рейтинг: 0 / 0
28.08.2007, 14:32
    #34758267
мод
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Большая распределенная система
PeshaShulcпользователей интерактивных не много порядка тысячи
Это не большая система.
PeshaShulcно система большая потому что в реальном времени принимает 50М записей в день, а следующая версия должна принимать милиард записей в день.
50М записей или реальных событий ? (есть разница) (датчики что-ли)
...
Рейтинг: 0 / 0
28.08.2007, 15:37
    #34758585
PeshaShulc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Большая распределенная система
softwarerТо есть в среднем - 11'500 записей в секунду, в пике - порядка 50'000. Боюсь, системе с "центральной БД" при такой нагрузке придется нелегко даже при коротких записях; это конечно существенно зависит от того, из скольких источников и какими порциями приходят данные, но вполне вероятно, я бы сразу задумался о кардинально распределенной системе. Также цифры не очень бьются с основной операцией "чтение из пяти таблиц по миллиону записей" - маловато будет, получается глубина не более получаса.

Совершенно прав. Система изначально распределенная и гибкая. Позволяет переаспределять нагрузку. Центральная база события не получает вообще.

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

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

softwarer
В общем, не верю я, что сейчас некто ГУРУ коротко и полно раскроет рецепт "как строить подобные системы", тем более сомневаюсь я, что на форуме много людей, не понаслышке знакомых с такой нагрузкой (я, например, к таким не отношусь).
у меня нет опыта построения репликаций тем более в SQL 2005 поэтому пришел за советом.
...
Рейтинг: 0 / 0
28.08.2007, 16:21
    #34758770
andsm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Большая распределенная система
У нас имеется подобная система, даже более сложная в плане репликации. Возможные проблемы достаточно очевидные - восстановление репликации после сбоев и первоначальная синхронизация данных. Эти вопросы нужно продумывать еще на стадии дизайна.
...
Рейтинг: 0 / 0
28.08.2007, 16:32
    #34758827
PeshaShulc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Большая распределенная система
andsmУ нас имеется подобная система, даже более сложная в плане репликации. Возможные проблемы достаточно очевидные - восстановление репликации после сбоев и первоначальная синхронизация данных. Эти вопросы нужно продумывать еще на стадии дизайна.
у вас SQL 2005?
используете ли вы встроенные средства или что то еще?
почему получаются сбои?
работает ли аддтивный апдейт?
в случае редактирования репликации как работает мердж?
как это работает с транзакциями?

как оно реально работает? Может там еще пять сервисПаков нужно ждать пока на это можно будет полагаться.
...
Рейтинг: 0 / 0
28.08.2007, 16:35
    #34758845
мод
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Большая распределенная система
PeshaShulcтут нужно пояснение. в центральную базу все эти события попадают после аггрегации. таким образом получается считанные миллионы.
N серверов БД собирают события, агрегируют их и записывают в ЦБД по линкам - ничего сложного
для ЦБД эти сервера - просто клиенты
PeshaShulc
Кроме того есть данные из других источников в терпимых количествах и медленно меняющиеся.
Этих прямо подключить к ЦБД как клиенты и ничего не реплицировать.
...
Рейтинг: 0 / 0
28.08.2007, 16:46
    #34758905
PeshaShulc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Большая распределенная система
модЭтих прямо подключить к ЦБД как клиенты и ничего не реплицировать.
так система сейчас и работает

проблема будет когда тысяча баз типа "B" (сейчас 50) одновременно начнут делать джойны с миллионными таблицами ЦДБ. Распределить такие запросы по времени не возможно "by design"
значит нужно кэшировать сами данные.
...
Рейтинг: 0 / 0
02.09.2007, 10:46
    #34770132
ВМоисеев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Большая распределенная система
>мод
>N серверов БД собирают события, агрегируют их и записывают в ЦБД ...

Что такое - агрегация?
Нельзя ли передать события (события можно представить SQL предложениями INSERT, UPDATE. DELETE ?) в ЦБД для обработки не агрегируя?

С уважением, Владимир.
...
Рейтинг: 0 / 0
02.09.2007, 16:55
    #34770296
PeshaShulc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Большая распределенная система
ВМоисеев>мод
>N серверов БД собирают события, агрегируют их и записывают в ЦБД ...

Что такое - агрегация?
Нельзя ли передать события (события можно представить SQL предложениями INSERT, UPDATE. DELETE ?) в ЦБД для обработки не агрегируя?

С уважением, Владимир.

Довольно странный вопрос.
если мне нужна сумма по каждому типу событий в центральной базе зачем мне тащить все события из всех баз данных приемников на центральную, чтобы посчитать сумму.
...
Рейтинг: 0 / 0
02.09.2007, 16:57
    #34770297
PeshaShulc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Большая распределенная система
или мой вопрос не проходит по профилю данного форума или просто нет опытных репликаторов
...
Рейтинг: 0 / 0
02.09.2007, 22:52
    #34770511
ВМоисеев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Большая распределенная система
>PeshaShulc
>если мне нужна сумма по каждому типу событий в центральной базе ...

Извините, но я не знаю Ваших задач.
Работаю с информационной системой, где между источником данных и сервером данных располагается сервер приложений.
В моей ситуации СП для B получает событие, обрабатывает его и результат записывает в B, делает запрос к B за суммой (например) и пересылает результат СП для A. Тот выполняет свою работу с записью результата в A.

С уважением, Владимир.
...
Рейтинг: 0 / 0
03.09.2007, 08:37
    #34770656
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Большая распределенная система
PeshaShulcДовольно странный вопрос.
Не от этого собеседника :)

PeshaShulcили мой вопрос не проходит по профилю данного форума или просто нет опытных репликаторов
Если Вам нужна репликация именно в MSSQL2005, резонно спрашивать о ней в форуме по MSSQL, isn't it?
...
Рейтинг: 0 / 0
03.09.2007, 10:24
    #34770869
мод
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Большая распределенная система
PeshaShulc
проблема будет когда тысяча баз типа "B" (сейчас 50) одновременно начнут делать джойны с миллионными таблицами ЦДБ.
Надо сделать так, чтобы базы типа "B" только писали в ЦБД, т.е. только сбор данных, а вся работа на ЦБД.
...
Рейтинг: 0 / 0
03.09.2007, 12:38
    #34771340
PeshaShulc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Большая распределенная система
softwarerЕсли Вам нужна репликация именно в MSSQL2005, резонно спрашивать о ней в форуме по MSSQL, isn't it?

sure
но поскольку я нахожусь на стадии выбора средств и уточнения проблемы мне интересно узнать возможные альтернативы
...
Рейтинг: 0 / 0
03.09.2007, 12:46
    #34771365
PeshaShulc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Большая распределенная система
модНадо сделать так, чтобы базы типа "B" только писали в ЦБД, т.е. только сбор данных, а вся работа на ЦБД.
согласен, только для осуществления этого мне нужно реплицировать интенсивно используемые данные из ЦБД поближе к базам типа "В", причем желательно размножить их.
...
Рейтинг: 0 / 0
03.09.2007, 13:51
    #34771637
ВМоисеев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Большая распределенная система
>Уважаемый softwarer
>Не от этого собеседника :)

У меня также возникают "странные" вопросы - 1000 клиентов генерят 1 миллиард записей в день?
И почему собственно необходимо реплицировать записи результата выполнения UPDATE в B ( к примеру) от B к A, а не сам UPDATE ?
В аналогичной ситуации использовал циклическую очередь для модифицирующих ( а-ля INSERT, UPDATE, DELETE) SQL предложений на СП(А). Все СП(B) забирали из неё не свои.
В чем же моя ошибка?
Или Вы просто привыкли подключать клиента непосредственно к базе данных и поэтому сложно получить текст самого модифицирующего предложения, и возможно оно обращается к ХР и имеет параметры.
Так в прототипе таких проблем нет в принципе.

С уважением, Владимир.
...
Рейтинг: 0 / 0
03.09.2007, 14:16
    #34771722
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Большая распределенная система
ВМоисеевУ меня также возникают "странные" вопросы
Я бы сформулировал иначе. У Вас возникают в основном странные вопросы и странные вопросы возникают в основном у Вас.

ВМоисеев- 1000 клиентов генерят 1 миллиард записей в день?
Где Вы нашли 1000 клиентов?

ВМоисеевИ почему собственно необходимо реплицировать записи результата выполнения UPDATE в B ( к примеру) от B к A, а не сам UPDATE ?
По двум причинам. Основная - реплицируя "сам апдейт", особенно легко разрушить синхронность данных (получить разные данные в разных базах). Варианты защиты от этого существуют, но непрактичны. Второстепенная - при типовой нагрузке репликация "самого апдейта" существенно повысит траффик ("сам апдейт" занимает больше места, нежели затронутые им данные). Ну и существует некоторое количество мелких соображений, например, реплицировать blob-данные в виде "сам апдейт" несколько затруднительно.

Репликацию "исполняемым текстом" используют в основном на относительно высоком уровне, при репликации вызовов хранимок, которые по идее переворошат кучу данных. Ну и следует просчитывать последствия такого шага.

ВМоисеевИли Вы просто привыкли подключать клиента непосредственно к базе данных и поэтому сложно получить текст самого модифицирующего предложения,
Вы в очередной раз говорите нечто бредовое.
...
Рейтинг: 0 / 0
03.09.2007, 14:38
    #34771830
мод
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Большая распределенная система
PeshaShulcмне нужно реплицировать интенсивно используемые данные из ЦБД поближе к базам типа "В", причем желательно размножить их.
А зачем ? 1000 юзеров могут работать на одной ЦБД - вопрос железа. Я так понял, что это в основном отчеты.
...
Рейтинг: 0 / 0
03.09.2007, 15:06
    #34771965
ВМоисеев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Большая распределенная система
>Уважаемый softwarer
>По двум причинам...

Конечно, я не гоняю по сети сериализованное представление текста самого предложения UPDATE. Реально это сериализованный упакованный и шифрованный (4-х байтный индекс функции + параметры). Так что трафик увеличится (?) не на много.
Использую GUID в качестве ключа записи и при изменении (UPDATE) передаю список ключей в качестве одного из видов параметров.

А получение текста SQL предложений в среде Т-SQL задача не тривиальная.

С уважением, Владимир.
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Большая распределенная система / 25 сообщений из 32, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]