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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

С уважением, Владимир.
...
Рейтинг: 0 / 0
Большая распределенная система
    #34771982
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевИспользую GUID в качестве ключа записи и при изменении (UPDATE) передаю список ключей в качестве одного из видов параметров.
Внимание, вопрос: чем это с практической точки зрения отличается от "передачи результатов выполнения"?

ВМоисеевИспользую GUID в качестве ключа записи
Ну кто бы сомневался :)

ВМоисеевА получение текста SQL предложений в среде Т-SQL задача не тривиальная.
А при чем тут среда T-SQL? У Вас разве клиент написан на T-SQL? В своем вышеописанном формате Вы разве берете "текстовый update" и парсите его в свой формат?
...
Рейтинг: 0 / 0
Большая распределенная система
    #34772000
PeshaShulc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
модА зачем ? 1000 юзеров могут работать на одной ЦБД - вопрос железа. Я так понял, что это в основном отчеты.
половина отчетов, работает на данных из ДБ типа "В". причем они должны джойнить таблицы из ЦБД.
...
Рейтинг: 0 / 0
Большая распределенная система
    #34772023
PeshaShulc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
уважаемые softwarer и ВМоисеев пожалуйста откройте отдельную тему для вашей дискуссии, а ВМоисеев попробуйте понять суть проблемы прежде чем давать рекомендации.
...
Рейтинг: 0 / 0
Большая распределенная система
    #34772047
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PeshaShulcно поскольку я нахожусь на стадии выбора средств и уточнения проблемы мне интересно узнать возможные альтернативы
Альтернативы... ну как сказать. Миллион записей в сутки на полсотни серверов несколько лет назад спокойно таскала моя самописная репликация; из этого я делаю вывод, что по сегодняшним меркам любая нормально написанная софтина с этим справится.
...
Рейтинг: 0 / 0
Большая распределенная система
    #34772579
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 PeshaShulc
MS MQ как транспорт не рассматривали?
Микрософт утверждает, что доставка гарантирована и надежность тем самым обеспечена.
...
Рейтинг: 0 / 0
Большая распределенная система
    #34772909
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>PeshaShulc
>... а ВМоисеев попробуйте понять суть проблемы ...

Стараюсь по мере сил.
Строю многоуровневые распределенные системы. В них клиент работает с СП, и в принципе не подключается (connect) к серверу данных.
Вот Вы уточняете постановку задачи (меня не очень интересует такое решение - только репликация на уровне серверов баз данных - а-ля: мгновеный снимок, транзакционный или слияние). Хочу примерить "одеяльце" к прототипу.

>половина отчетов, работает на данных из ДБ типа "В". причем они должны джойнить таблицы из ЦБД.

Я не знаю объемов данных в ДБ типа "В" необходимых для построения какого-то конкретного отчета. Но если их объем значительно меньше объема таблиц из ЦБД, то в среде прототипа можно поступить и так - СП(B) запрашивает построение необходимой выборки, сериализует и упаковывает её и передает результат СП(A). Тот строит временные таблицы, "заливает" переданные данные и в среде сервера данных A строит отчет. В каком формате отчет? Вам виднее.
В любом случае СП(А) сериализует и упаковывает результат и передает его СП(В). Тот клиенту.

С уважением, Владимир.
...
Рейтинг: 0 / 0
Большая распределенная система
    #34806405
Вот, проходил тут мимо не смог удержаться от комментария. =|:^)
Приходилось серъезно заниматься проблемами репликации в прошлой жизни.

Все зависит конечно от характера данных, нагрузки, потоков по разным направлениям.
Идеальных решений репликации не существует, везде есть свои +-.

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

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


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