powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проектирование распределённой базы.
9 сообщений из 9, страница 1 из 1
Проектирование распределённой базы.
    #36852899
slay82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток.
Есть интересный проект во много завязанный на репликацию (моё слабое место).
Задача ставится так:
Необходима база данных обслуживания автовокзалов.

Распределённость возникает по 2м причинам:
1. Сбор исторических данных на центральном сервере для анализа (тут всё логично).
2. Продажа билетов с центрального сервера. Т.е. каждый автовокзал обслуживает свои рейсы самостоятельно (продажи внутри при помощи своей базы), но при этом выделает квоты на продажу для распространителей.

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

У меня возникают следующие сомнения:

- Как центральный сервак справится с таким потоком данных репликации (даже если он кластер) и как он будет в то же самое время отвечать на запросы реального времени ? (есть подозрение, что загнётся)

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

- В какую цену вы бы оценили такой проект ? (Функционал в основном должен быть построен на процедурах SQL. Все клиенты тонкие.)

Очень интересно и одновременно необходимо ваше мнение.
Прошу высказываться.
...
Рейтинг: 0 / 0
Проектирование распределённой базы.
    #36852940
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для веб-продажи нужно тоже организовать отдельный сервер, иначе выходит смешивание уровней. Иначе говоря - веб-портал - это еще один автовокзал, только виртуальный.

авторИ вообще, не проще ли подключать внешнего клиента к нужному автовокзалу и не парить мозг (а центральный использовать как перенаправитель) ?
А проблемы связи? Без связи касса же должна функционировать.
...
Рейтинг: 0 / 0
Проектирование распределённой базы.
    #36852943
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или при появлении связи просто накопившееся задним числом провести вместо репликации?
...
Рейтинг: 0 / 0
Проектирование распределённой базы.
    #36852967
slay82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Edd.DragonДля веб-продажи нужно тоже организовать отдельный сервер, иначе выходит смешивание уровней. Иначе говоря - веб-портал - это еще один автовокзал, только виртуальный.

авторИ вообще, не проще ли подключать внешнего клиента к нужному автовокзалу и не парить мозг (а центральный использовать как перенаправитель) ?
А проблемы связи? Без связи касса же должна функционировать.

При обрыве связи центрального с автовокзалом на автовокзале продажа продолжается, но без квоты.
Например, на рейс нужно продать всего 35 билетов из них 5 квота. Т.е. автовокзал при любом раскладе продаст 30 (даже без связи).
...
Рейтинг: 0 / 0
Проектирование распределённой базы.
    #36852977
slay82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Edd.Dragon,

Т.е. наружные продажи не будут идти, а внутри автовокзала всё будет функционировать.

P/S/ Больше всего меня интересует сама архитектура: один центральный с нагрузкой со всех регионов и много маленьких. Как оно будет ?
...
Рейтинг: 0 / 0
Проектирование распределённой базы.
    #36853371
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
slay82 1. Сбор исторических данных на центральном сервере для анализа (тут всё логично).Это выносите за скобки, ибо к репликации не имеет отношения.
slay82 - Как центральный сервак справится с таким потоком данных репликации (даже если он кластер) и как он будет в то же самое время отвечать на запросы реального времени ? (есть подозрение, что загнётся)
Зависит от нагрузки, железа и сети. Кластер совсем не в кассу.
slay82 Как отслеживать и разруливать коллизии типа продажи одного билета одновременно в обоих местах ?Это вам должен ответить заказчик
slay82 Не понятно какую схему репликации использовать ибо и центральный сервак и периферийные машины(автовокзалы) являются как подписчиками так и издателями.Местный сервер издатель, центральный подписчик, база центрального сервера - только для чтения.
slay82 И вообще, не проще ли подключать внешнего клиента к нужному автовокзалуК базе нужного вокзала, если она доступна. А если не доступна пусть клиент растолкует что делать.
slay82 - В какую цену вы бы оценили такой проект ?Неверный форум для вопроса

Вообще складывается впечатление что задача не проработана. Для успешной реализации надо расписать реакцию системы на ВСЕ возможные случаи - например если потеряна связь с периферией что будет видеть веб-юзер: Server is down, последнее известное состояние, только квота. Что будет видеть пользователь отключенной системы. Что считается потерей связи, какие действия, и кто будет предпринимать после восстановления связи и т.д. Причем это будет успешная реализация только с вашей стороны, со стороны пользователя это может считаться провалом.
...
Рейтинг: 0 / 0
Проектирование распределённой базы.
    #36853442
slay82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответ SERG1257.
Однако хочу немного уточнить (в связи с не полным пониманием растущим из уровня квалификации).

SERG1257slay82 1. Сбор исторических данных на центральном сервере для анализа (тут всё логично).Это выносите за скобки, ибо к репликации не имеет отношения.

Предполагается что сбор происходит в реальном времени и при помощи репликации. Почему же не имеет ? (и будет влиять на выбор схемы)

SERG1257slay82 - Как центральный сервак справится с таким потоком данных репликации (даже если он кластер) и как он будет в то же самое время отвечать на запросы реального времени ? (есть подозрение, что загнётся)
Зависит от нагрузки, железа и сети. Кластер совсем не в кассу.
Всегда полагал (может и не прав), что кластерная система способна распределять нагрузку. Тем более если база внутри него хранится на нескольких серваках в вертикально разделённом виде.

SERG1257slay82 Как отслеживать и разруливать коллизии типа продажи одного билета одновременно в обоих местах ?Это вам должен ответить заказчик
Это-да. Однако на данный момент более интересует принципиальное наличие такой возможности в MsSQL. Если более точно, то вопрос звучит так: "Есть ли в какой-то из систем репликации возможность обнаруживать в реальном времени подобную коллизию, вмешиваться в неё, разрешать и сразу же извещать одну из сторон, что она не права (и обязана повторить продажу)".

SERG1257slay82 Не понятно какую схему репликации использовать ибо и центральный сервак и периферийные машины(автовокзалы) являются как подписчиками так и издателями.Местный сервер издатель, центральный подписчик, база центрального сервера - только для чтения.
Другими словами на центральный сервер можно обратиться чтобы узнать есть ли билеты на каком-то из автовокзалов, но покупать только посредством подключения к базе нужного автовокзала ?

SERG1257Вообще складывается впечатление что задача не проработана. Для успешной реализации надо расписать реакцию системы на ВСЕ возможные случаи - например если потеряна связь с периферией что будет видеть веб-юзер: Server is down, последнее известное состояние, только квота. Что будет видеть пользователь отключенной системы. Что считается потерей связи, какие действия, и кто будет предпринимать после восстановления связи и т.д. Причем это будет успешная реализация только с вашей стороны, со стороны пользователя это может считаться провалом.
Это в точку. Ещё как не проработана. Да ещё и я не профи в репликации (мягко говоря). Вот и достаю всех подряд. Чтобы результат не получился в стиле "хотели как лучше...".
Ещё раз спасибо за мнение.
...
Рейтинг: 0 / 0
Проектирование распределённой базы.
    #36853989
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
slay82 Почему же не имеет ? (и будет влиять на выбор схемы)Потому что отчеты и анализ совершенно не пересекается с торговлей. Вечером (в выходные, раз в месяц) когда все пассажиры уже уехали данные спокойно копируются в специальную базу заточенную под отчеты.
slay82 Всегда полагал (может и не прав), что кластерная система способна распределять нагрузку.Не запрягайте лошадь впереди телеги. Спроектируйте задачу, обозначьте требования и риски на сервер, определитесь с бюджетом и только тогда принимайте решения о кластере.
slay82 на данный момент более интересует принципиальное наличие такой возможности в MsSQLВозможность есть.
slay82 Это в точку. Ещё как не проработана. Да ещё и я не профи в репликации (мягко говоря). Вот и достаю всех подряд. Чтобы результат не получился в стиле "хотели как лучше...".На месте вашего заказчика я бы посмотрел в сторону готовых решений. Область торговли билетами на мой взгляд АСУчена хорошо. Не факт что выйдет дороже, точно будет быстрее, при грамотном выборе поставщика наверняка будет надежнее (меньше риска). Как минимум будут протоптаны дорожки и найдены грабли. Так что пункт первый - анализ существующих решений и проблем.
Предположим что решений не существует, то есть в порядке мысленного эксперимента - как я бы решал задачу.
1 Судя по попыткам обеспечить репликацию в реальном времени сеть скорее есть чем нет.
2 Судя по принципиальной возможности самодостаточной работы можно выделить некий сервер который "владеет" данными. Это может быть один центральный сервер, сервер на автовокзале, сервер обслуживающий несколько вокзалов. Остальные сервера могут иметь копию для чтения (разной степени свежести) но не имеют права (в нормальном режиме) изменять у себя эти данные кроме как цепляясь к владеющему серверу и обновляя картинку. То есть обратите внимание я всячески бы избегал мультимастерной репликации, сводя конфликты к - обратитесь к мастеру за свежей копией.
...
Рейтинг: 0 / 0
Проектирование распределённой базы.
    #36854004
slay82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, SERG1257.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проектирование распределённой базы.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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