Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Разделение БД на Фронт и Бэк  [new]
EugeneX
Member

Откуда:
Сообщений: 2
Работаю в процессинговой компании (обработка информации о платежах от субагентов и передача их операторам)

Есть сервер MS SQL 2005. Работает на одном физическом сервере. На нем поднята БД, которая обеспечивает как и процессинг (обработку платежей), и биллинг (финансовые расчеты с контрагентами) и отчетность.

Хочется разделить функционал на фронт (процессинг) и бэк (биллинг, отчетность), разнеся по разным БД на разных серверах. Цель - снятие нагрузки с процессинга.

Вопросы:

1. Как правильнее синхронизировать таблицы справочников (считаем, что он правятся во фронте).
А) Выделить их в отдельную БД и настроить для нее лог-шиппинг на бэк-сервер?
Б) Настроить репликацию этих таблиц?

Вариант А выглядит надежнее, но надо возиться с выделением справочников в отдельную БД. И открыт вопрос - скажется ли заметно на быстродействии запросов то, что джойнится будут справочные таблицы из другой БД на этом же сервере.

2. Как бы вы организовали работу с актуальными балансами субагентов? Они должны проверяться (и изменяться) при добавлении транзакций вj ahjynt. А с другой стороны, на них должны влиять операции, выполняющиеся в бэке (поступление платежей от субагентов, например).

3. Верно ли вообще выносить биллинг в бэк, возможно это часть фронта, а классический бэк должен содержать только отчетность?
18 ноя 09, 12:10    [7944198]     Ответить | Цитировать Сообщить модератору
 Re: Разделение БД на Фронт и Бэк  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5111
EugeneX
Хочется разделить функционал на фронт (процессинг) и бэк (биллинг, отчетность), разнеся по разным БД на разных серверах. Цель - снятие нагрузки с процессинга.

ИМХО, стоит зайти вот с этого конца.
Хочется почему?
Озвученная цель возникла по причине?
18 ноя 09, 12:16    [7944248]     Ответить | Цитировать Сообщить модератору
 Re: Разделение БД на Фронт и Бэк  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31241
EugeneX
Вопросы:

1. Как правильнее синхронизировать таблицы справочников (считаем, что он правятся во фронте).
А) Выделить их в отдельную БД и настроить для нее лог-шиппинг на бэк-сервер?
Б) Настроить репликацию этих таблиц?
Б)
или
С) заливка справочников из скриптов (для редко системных справочников, которые меняются программистами)

EugeneX
3. Верно ли вообще выносить биллинг в бэк, возможно это часть фронта, а классический бэк должен содержать только отчетность?
Обычно под фронтом понимается реал-тайм часть системы, для которой очень критичны отсутствие перерывов в обслуживании и малое время отклика. Соответственно в бэкенд выносят часть функционально более сложную и с более тяжёлыми запросами, в которой соответственно будет больше ошибок, перерывов и большие таймауты.

А вообще разделение систем на части и терминология зависит от ваших требований и предпочтений.
18 ноя 09, 12:20    [7944283]     Ответить | Цитировать Сообщить модератору
 Re: Разделение БД на Фронт и Бэк  [new]
EugeneX
Member

Откуда:
Сообщений: 2
Дедушка
EugeneX
Хочется разделить функционал на фронт (процессинг) и бэк (биллинг, отчетность), разнеся по разным БД на разных серверах. Цель - снятие нагрузки с процессинга.

ИМХО, стоит зайти вот с этого конца.
Хочется почему?
Озвученная цель возникла по причине?


Потому что
а) скапливается много архивной информации, которая требуется только для отчетов, хотелось бы, чтобы она скапливалась в бэке и там использовалась. На текущий момент в БД 20 Гб, из которых реально для процессинга надо в 10 раз меньше (а то и меньше).

б) отчетность загружает ресурсы сервера, забирая их у процессинга.

Ну и как мне уже кажется, биллинг надо оставлять на фронте. Нагрузка от него небольшая. А на бэк из него надо будет унести только расчет документов за отчетные периоды (та же отчетность).
18 ноя 09, 12:44    [7944465]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить