|
|
|
Большая распределенная система
|
|||
|---|---|---|---|
|
#18+
Порекомендуйте возможные реализации такой задачи: есть большая система с одной центральной ДБ (А) и несколькими инстансами ДБ другого типа (B) для накопления и кэширования данных. Сейчас количество баз типа B может быть до 50 и все работает сбалансированно. Следующая версия должна поддерживать 1000 баз типа B. Поскольку все они ходят в базу A я вижу в этом проблему. Логично было бы поддерживать копии A для нескольких баз типа B. (95% запросов B->A на чтение из пяти таблиц по милиону записей, запросы A->B 100% параллельный вызов процедур). Какие возможны технологии реализации? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2007, 16:41 |
|
||
|
Большая распределенная система
|
|||
|---|---|---|---|
|
#18+
я несколько удивлен отсутсвием реакции ?????? - в моем вопросе много букав и никто не в силах дочитать до конца - новичкам форума не отвечают в принципе? - никто никогда не делал репликации? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 11:44 |
|
||
|
Большая распределенная система
|
|||
|---|---|---|---|
|
#18+
Ты слишком строг к нам... ---------- Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 12:25 |
|
||
|
Большая распределенная система
|
|||
|---|---|---|---|
|
#18+
PeshaShulcесть большая система Пользователей сколько ? Это и определяет масштаб системы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 12:47 |
|
||
|
Большая распределенная система
|
|||
|---|---|---|---|
|
#18+
PeshaShulcя несколько удивлен отсутсвием реакции Ваш вопрос не дает возможности дать на него короткий и толковый ответ. Коротким был бы "любые", но вряд ли Вы сочтете его в должной мере конструктивным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 13:41 |
|
||
|
Большая распределенная система
|
|||
|---|---|---|---|
|
#18+
пользователей интерактивных не много порядка тысячи но система большая потому что в реальном времени принимает 50М записей в день, а следующая версия должна принимать милиард записей в день. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 14:07 |
|
||
|
Большая распределенная система
|
|||
|---|---|---|---|
|
#18+
PeshaShulcа следующая версия должна принимать милиард записей в день. То есть в среднем - 11'500 записей в секунду, в пике - порядка 50'000. Боюсь, системе с "центральной БД" при такой нагрузке придется нелегко даже при коротких записях; это конечно существенно зависит от того, из скольких источников и какими порциями приходят данные, но вполне вероятно, я бы сразу задумался о кардинально распределенной системе. Также цифры не очень бьются с основной операцией "чтение из пяти таблиц по миллиону записей" - маловато будет, получается глубина не более получаса. Суммируя - вообще-то я сомневаюсь, что задачу таких размеров стоит проектировать в форуме. Далее, я весьма сомневаюсь в целесообразности таскания (с копированием) миллиарда записей по маршруту центральная бд (А) - промежуточные полуцентральные бд (А') - оконечные бд (B); имеет смысл сокращать пути, делать сколь возможно полносвязку (хотя это, конечно, зависит от специфики данных). Возможно, будет иметь смысл промежуточный кэш (то есть, грубо говоря, миллиард записей приходит на A, потоки по сто миллионов приходят на десяток A', оттуда их запрашивают B). Далее - в такой системе я бы ожидал других требований - по надежности-бесперебойности-безопасности-итд, что тоже повлияет на архитектуру и технические решения. В общем, не верю я, что сейчас некто ГУРУ коротко и полно раскроет рецепт "как строить подобные системы", тем более сомневаюсь я, что на форуме много людей, не понаслышке знакомых с такой нагрузкой (я, например, к таким не отношусь). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 14:31 |
|
||
|
Большая распределенная система
|
|||
|---|---|---|---|
|
#18+
PeshaShulcпользователей интерактивных не много порядка тысячи Это не большая система. PeshaShulcно система большая потому что в реальном времени принимает 50М записей в день, а следующая версия должна принимать милиард записей в день. 50М записей или реальных событий ? (есть разница) (датчики что-ли) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 14:32 |
|
||
|
Большая распределенная система
|
|||
|---|---|---|---|
|
#18+
softwarerТо есть в среднем - 11'500 записей в секунду, в пике - порядка 50'000. Боюсь, системе с "центральной БД" при такой нагрузке придется нелегко даже при коротких записях; это конечно существенно зависит от того, из скольких источников и какими порциями приходят данные, но вполне вероятно, я бы сразу задумался о кардинально распределенной системе. Также цифры не очень бьются с основной операцией "чтение из пяти таблиц по миллиону записей" - маловато будет, получается глубина не более получаса. Совершенно прав. Система изначально распределенная и гибкая. Позволяет переаспределять нагрузку. Центральная база события не получает вообще. softwarer Суммируя - вообще-то я сомневаюсь, что задачу таких размеров стоит проектировать в форуме. Далее, я весьма сомневаюсь в целесообразности таскания (с копированием) миллиарда записей по маршруту центральная бд (А) - промежуточные полуцентральные бд (А') - оконечные бд (B); имеет смысл сокращать пути, делать сколь возможно полносвязку (хотя это, конечно, зависит от специфики данных). Возможно, будет иметь смысл промежуточный кэш (то есть, грубо говоря, миллиард записей приходит на A, потоки по сто миллионов приходят на десяток A', оттуда их запрашивают B). Далее - в такой системе я бы ожидал других требований - по надежности-бесперебойности-безопасности-итд, что тоже повлияет на архитектуру и технические решения. тут нужно пояснение. в центральную базу все эти события попадают после аггрегации. таким образом получается считанные миллионы. Кроме того есть данные из других источников в терпимых количествах и медленно меняющиеся. Именно их мне и нужно реплицировать, иначе ремоут джойны из тысячи источников положат центральную базу. softwarer В общем, не верю я, что сейчас некто ГУРУ коротко и полно раскроет рецепт "как строить подобные системы", тем более сомневаюсь я, что на форуме много людей, не понаслышке знакомых с такой нагрузкой (я, например, к таким не отношусь). у меня нет опыта построения репликаций тем более в SQL 2005 поэтому пришел за советом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 15:37 |
|
||
|
Большая распределенная система
|
|||
|---|---|---|---|
|
#18+
У нас имеется подобная система, даже более сложная в плане репликации. Возможные проблемы достаточно очевидные - восстановление репликации после сбоев и первоначальная синхронизация данных. Эти вопросы нужно продумывать еще на стадии дизайна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 16:21 |
|
||
|
Большая распределенная система
|
|||
|---|---|---|---|
|
#18+
andsmУ нас имеется подобная система, даже более сложная в плане репликации. Возможные проблемы достаточно очевидные - восстановление репликации после сбоев и первоначальная синхронизация данных. Эти вопросы нужно продумывать еще на стадии дизайна. у вас SQL 2005? используете ли вы встроенные средства или что то еще? почему получаются сбои? работает ли аддтивный апдейт? в случае редактирования репликации как работает мердж? как это работает с транзакциями? как оно реально работает? Может там еще пять сервисПаков нужно ждать пока на это можно будет полагаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 16:32 |
|
||
|
Большая распределенная система
|
|||
|---|---|---|---|
|
#18+
PeshaShulcтут нужно пояснение. в центральную базу все эти события попадают после аггрегации. таким образом получается считанные миллионы. N серверов БД собирают события, агрегируют их и записывают в ЦБД по линкам - ничего сложного для ЦБД эти сервера - просто клиенты PeshaShulc Кроме того есть данные из других источников в терпимых количествах и медленно меняющиеся. Этих прямо подключить к ЦБД как клиенты и ничего не реплицировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 16:35 |
|
||
|
Большая распределенная система
|
|||
|---|---|---|---|
|
#18+
модЭтих прямо подключить к ЦБД как клиенты и ничего не реплицировать. так система сейчас и работает проблема будет когда тысяча баз типа "B" (сейчас 50) одновременно начнут делать джойны с миллионными таблицами ЦДБ. Распределить такие запросы по времени не возможно "by design" значит нужно кэшировать сами данные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 16:46 |
|
||
|
Большая распределенная система
|
|||
|---|---|---|---|
|
#18+
>мод >N серверов БД собирают события, агрегируют их и записывают в ЦБД ... Что такое - агрегация? Нельзя ли передать события (события можно представить SQL предложениями INSERT, UPDATE. DELETE ?) в ЦБД для обработки не агрегируя? С уважением, Владимир. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2007, 10:46 |
|
||
|
Большая распределенная система
|
|||
|---|---|---|---|
|
#18+
ВМоисеев>мод >N серверов БД собирают события, агрегируют их и записывают в ЦБД ... Что такое - агрегация? Нельзя ли передать события (события можно представить SQL предложениями INSERT, UPDATE. DELETE ?) в ЦБД для обработки не агрегируя? С уважением, Владимир. Довольно странный вопрос. если мне нужна сумма по каждому типу событий в центральной базе зачем мне тащить все события из всех баз данных приемников на центральную, чтобы посчитать сумму. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2007, 16:55 |
|
||
|
Большая распределенная система
|
|||
|---|---|---|---|
|
#18+
или мой вопрос не проходит по профилю данного форума или просто нет опытных репликаторов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2007, 16:57 |
|
||
|
Большая распределенная система
|
|||
|---|---|---|---|
|
#18+
>PeshaShulc >если мне нужна сумма по каждому типу событий в центральной базе ... Извините, но я не знаю Ваших задач. Работаю с информационной системой, где между источником данных и сервером данных располагается сервер приложений. В моей ситуации СП для B получает событие, обрабатывает его и результат записывает в B, делает запрос к B за суммой (например) и пересылает результат СП для A. Тот выполняет свою работу с записью результата в A. С уважением, Владимир. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2007, 22:52 |
|
||
|
Большая распределенная система
|
|||
|---|---|---|---|
|
#18+
PeshaShulcДовольно странный вопрос. Не от этого собеседника :) PeshaShulcили мой вопрос не проходит по профилю данного форума или просто нет опытных репликаторов Если Вам нужна репликация именно в MSSQL2005, резонно спрашивать о ней в форуме по MSSQL, isn't it? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2007, 08:37 |
|
||
|
Большая распределенная система
|
|||
|---|---|---|---|
|
#18+
PeshaShulc проблема будет когда тысяча баз типа "B" (сейчас 50) одновременно начнут делать джойны с миллионными таблицами ЦДБ. Надо сделать так, чтобы базы типа "B" только писали в ЦБД, т.е. только сбор данных, а вся работа на ЦБД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2007, 10:24 |
|
||
|
Большая распределенная система
|
|||
|---|---|---|---|
|
#18+
softwarerЕсли Вам нужна репликация именно в MSSQL2005, резонно спрашивать о ней в форуме по MSSQL, isn't it? sure но поскольку я нахожусь на стадии выбора средств и уточнения проблемы мне интересно узнать возможные альтернативы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2007, 12:38 |
|
||
|
Большая распределенная система
|
|||
|---|---|---|---|
|
#18+
модНадо сделать так, чтобы базы типа "B" только писали в ЦБД, т.е. только сбор данных, а вся работа на ЦБД. согласен, только для осуществления этого мне нужно реплицировать интенсивно используемые данные из ЦБД поближе к базам типа "В", причем желательно размножить их. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2007, 12:46 |
|
||
|
Большая распределенная система
|
|||
|---|---|---|---|
|
#18+
>Уважаемый softwarer >Не от этого собеседника :) У меня также возникают "странные" вопросы - 1000 клиентов генерят 1 миллиард записей в день? И почему собственно необходимо реплицировать записи результата выполнения UPDATE в B ( к примеру) от B к A, а не сам UPDATE ? В аналогичной ситуации использовал циклическую очередь для модифицирующих ( а-ля INSERT, UPDATE, DELETE) SQL предложений на СП(А). Все СП(B) забирали из неё не свои. В чем же моя ошибка? Или Вы просто привыкли подключать клиента непосредственно к базе данных и поэтому сложно получить текст самого модифицирующего предложения, и возможно оно обращается к ХР и имеет параметры. Так в прототипе таких проблем нет в принципе. С уважением, Владимир. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2007, 13:51 |
|
||
|
Большая распределенная система
|
|||
|---|---|---|---|
|
#18+
ВМоисеевУ меня также возникают "странные" вопросы Я бы сформулировал иначе. У Вас возникают в основном странные вопросы и странные вопросы возникают в основном у Вас. ВМоисеев- 1000 клиентов генерят 1 миллиард записей в день? Где Вы нашли 1000 клиентов? ВМоисеевИ почему собственно необходимо реплицировать записи результата выполнения UPDATE в B ( к примеру) от B к A, а не сам UPDATE ? По двум причинам. Основная - реплицируя "сам апдейт", особенно легко разрушить синхронность данных (получить разные данные в разных базах). Варианты защиты от этого существуют, но непрактичны. Второстепенная - при типовой нагрузке репликация "самого апдейта" существенно повысит траффик ("сам апдейт" занимает больше места, нежели затронутые им данные). Ну и существует некоторое количество мелких соображений, например, реплицировать blob-данные в виде "сам апдейт" несколько затруднительно. Репликацию "исполняемым текстом" используют в основном на относительно высоком уровне, при репликации вызовов хранимок, которые по идее переворошат кучу данных. Ну и следует просчитывать последствия такого шага. ВМоисеевИли Вы просто привыкли подключать клиента непосредственно к базе данных и поэтому сложно получить текст самого модифицирующего предложения, Вы в очередной раз говорите нечто бредовое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2007, 14:16 |
|
||
|
Большая распределенная система
|
|||
|---|---|---|---|
|
#18+
PeshaShulcмне нужно реплицировать интенсивно используемые данные из ЦБД поближе к базам типа "В", причем желательно размножить их. А зачем ? 1000 юзеров могут работать на одной ЦБД - вопрос железа. Я так понял, что это в основном отчеты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2007, 14:38 |
|
||
|
Большая распределенная система
|
|||
|---|---|---|---|
|
#18+
>Уважаемый softwarer >По двум причинам... Конечно, я не гоняю по сети сериализованное представление текста самого предложения UPDATE. Реально это сериализованный упакованный и шифрованный (4-х байтный индекс функции + параметры). Так что трафик увеличится (?) не на много. Использую GUID в качестве ключа записи и при изменении (UPDATE) передаю список ключей в качестве одного из видов параметров. А получение текста SQL предложений в среде Т-SQL задача не тривиальная. С уважением, Владимир. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2007, 15:06 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=34757583&tid=1544295]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
177ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 215ms |
| total: | 494ms |

| 0 / 0 |
