Highload обмен данными: постановка задачи

04.11.16

База данных - HighLoad оптимизация

Цели статьи: определить, что такое "highload обмен", описать типовой сценарий обмена, сформулировать основные требования к обменам такого типа и предложить методику оценки производительности (пропускной способности).

Статья "живая" - будет дополняться и изменяться по мере написания примеров кода и выполнения замеров производительности. Таким образом я постараюсь продемонстрировать возможности SQL Server для построения распределённых информационных систем. Эта мощнейшая СУБД приобретена большинством компаний, использующих клиент-серверный вариант 1С:Предприятие 8, однако подавляющее большинство её возможностей остаётся не востребованной. 

Чтобы было понятно, распределённую информациолнную систему какого масштаба можно построить при помощи SQL Server, приведу в пример такую известную во всём мире социальную сеть, как MySpace, которая по состоянию на 2016 год имеет более 25 млн. пользователей и более 1000 серверов SQL Server. 

 

Для построения тестового стенда я использую 1С:Предприятие 8.3 и SQL Server 2014 Developer Edition (бесплатная версия для индивидуальных разработчиков). Можно использовать Express Edition - код примеров будет совместим с этой версией SQL Server тоже.

Highload обмен характеризуется, прежде всего, большим объёмом данных, который необходимо передавать между узлами распределённой информационной системы. "Highload" я предлагаю называть такие системы, в которых во всех её узлах для обмена генерируется от 1 Гб чистых данных (размер данных СУБД) ежесуточно. (Может быть больше - замечания и примеры из жизни членов сообщества приветствуются). В то же самое время скорость передачи данных является не единственным требованием, которое предъявляется к системам этого класса. Не менее важную роль при этом играют обеспечение целостности данных, сохранение приемлемой параллельности работы пользователей, безопасность, масштабируемость и прочее. 

 

Типовой сценарий и его задачи. 

Один цикл обмена данными между двумя узлами в одном направлении выглядит следующим образом (упрощённая базовая схема):  

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

2. Чтение изменений (по событию или расписанию). 

3. Формирование сообщений обмена (агрегирование изменений). 

4. Маршрутизация сообщений по узлам. 

5. Трансляция/конвертация сообщений для приёмника. 

6. Запись сообщений обмена (выгрузка). 

7. Доставка сообщений получателю. 

8. Чтение сообщений обмена (по событию или расписанию). 

9. Запись изменений (загрузка). 

 

Обеспечение целостности данных. 

1. Регистрация изменений должна быть согласована с записью нового состояния объекта в базу данных. Не должно быть "потерянных" изменений, когда объект записан в базу, а изменение  - нет. То же самое относится к обратной ситуации, когда изменение зарегистрировано, а запись объекта была отменена. Целостность данных системы в таких случаях считается нарушенной. 

2. Восстановление системы после сбоя должно гарантировать восстановление зарегистрированных изменений или уже сформированных, но ещё недоставленных сообщений обмена, которые хранятся в специальных таблицах СУБД или очередях сообщений. 

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

 

Параллельность работы пользователей. 

 1. Процесс регистрации изменений (работа пользователей) не должен блокировать процесс их выгрузки (обмен данными) и наоборот. 

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

 

Производительность (пропускная способность). 

Общая производительность системы обмена данными или другими словами её пропускная способность должна превышать скорость генерации новых изменений в 5 раз (в идеале - 10). Этого "запаса прочности" должно быть достаточно для сглаживания пиковых нагрузок или восстановления работы системы после продолжительного сбоя. 

 

Методика замера производительности. 

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

Таким образом, если мы определяем highload обмен как систему, в которой генерируется от 1 Гб чистых данных ежесуточно, а запасом прочности 10-кратное превышение этой цифры, тогда целевая производительность системы должна равняться 10 Гб / 20 часов = 512 Мб/час (4 часа в сутки беру на технологическое обслуживание). 

Чтобы было понятнее, то в формате XML это может быть эквивалентно файлам, которые имеют размер приблизительно равный 5 Гб. И это нужно "прокачать" за час. Если мы имеем сервер, например, с 10-тью процессорными ядрами, то это всего лишь по 512 Мб XML на ядро, что в общем-то, как мне кажется, не так много.

Связанные статьи:

Использование SQL Server Change Tracking для регистрации изменений данных объектов 1С:Предприятие 8

Вступайте в нашу телеграмм-группу Инфостарт

highload обмен данными интеграция РИБ SQL SQL Server Service Broker Change Tracking

См. также

Перенос данных 1C Программист 1С:Предприятие 8 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос документов, начальных остатков и справочной информации из УПП 1.3 в ERP 2 | из УПП 1.3 в УТ 11 | из УПП в КА 2 | Правила конвертации (КД 2) | Более 360 предприятий выполнили переход с использованием этого продукта! | Сэкономьте время - используйте готовое решение для перехода! | Позволяет перенести из УПП 1.3 в ERP / УТ 11 / КА 2 всю возможную информацию | В переносе есть фильтр по организации и множество других опциональных параметров выгрузки | Есть несколько алгоритмов выгрузки остатков на выбор

58000 руб.

04.08.2015    186307    437    301    

445

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С:Предприятие 8 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УПП 1.3 (1.3.267.x) и БП 3.0 (3.0.194.x). Правила подходят для версии ПРОФ и КОРП.

38000 34200 руб.

15.12.2021    33513    250    64    

190

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена | Можно выполнить переход с УПП на БП 3 или запускать выгрузку данных за выбранный период времени | Переносятся документы, начальные остатки и вся справочная информация | Есть фильтр по организации и множество других параметров выгрузки | Поддерживается несколько сценариев работы: как первичный полный перенос, так и перенос только новых документов | Перенос данных возможен в "1С: Бухгалтерия 3.0" версии ПРОФ, КОРП или базовую | Переход с "1С: УПП1.3" / "1С:КА 1.1" на "1С:БП3.0" с помощью правил конвертации будет максимально комфортным! | Можно бесплатно проверить перенос на вашем сервере!

50050 руб.

25.02.2015    187523    356    288    

416

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С:Предприятие 8 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)

Правила в универсальном формате обмена для ERP 2.5, КА 2.5, УТ 11.5, БП 3.0, Розница, УНФ, для последних версий конфигураций. Ссылки на другие конфигурации в описании публикации. Правила совместимы со всеми другими версиями конфигураций новыми и старыми, поддерживающими обмен и синхронизацию в формате EnterpriseData. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

27633 руб.

12.06.2017    159656    959    317    

480

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Программист 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Платные (руб)

Правила переноса кадровых и расчетных данных и справочной информации из "1С:УПП1.3" или "1С:КА 1.1" в "1С:ЗУП 3.1 | Разработан в формате КД 2 (правила конвертации данных) | При выгрузке есть фильтр по организациям | Обновляется при выходе новых релизов 1С | Развитие алгоритмов | Расчетные документы переносятся в документ "Перенос данных" | Создаются документы "Начальная штатная расстановка" и "Начальная задолженность по зарплате", переносятся кадровые документы

58000 руб.

29.10.2018    62385    80    131    

78

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С:Предприятие 8 1С:Управление торговлей 10 Россия Управленческий учет Платные (руб)

Перенос данных из 1С:Управление торговлей 10.3 в 1С:Управление торговлей 11.5 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УТ 10.3 (10.3.88.x) и УТ 11.5 (11.5.25.x).

38000 34200 руб.

23.07.2020    67377    313    94    

251

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Программист 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос данных из ERP в БП 3 | из КА 2 в БП 3 | из УТ 11 в БП 3 | из ЕРП в БП 3 | Сэкономьте время - используйте готовое решение для перехода! | Перенос разработан в формате КД 2 (правила конвертации данных) | Переносятся все возможные виды документов, начальных остатков и нормативно-справочная информация| Можно опционально выгружать каждую пару "номенклатура+характеристика" как отдельную номенклатуру | Есть выгрузка настроек счетов учета и зарплатных данных из ERP / КА 2 | Можно проверить на вашем сервере перед покупкой

58000 руб.

15.04.2019    83213    222    174    

161

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Управление производственным предприятием Россия Платные (руб)

Регулярный обмен, выгрузка, перенос из КА 1.1, УПП 1.3, УТ 10.3 для обмена с любыми конфигурациями, поддерживающими обмен в формате EnterpriseData (КД3) - БП 3.0, ERP, КА 2, УТ 11, Розница 3, УНФ 3 и другими. Правила для старых и доработанных конфигураций не требуют синхронного обновления и совместимы с новыми и будущими конфигурациями. Обмен по расписанию, через папку, FTP, почту.

16531 руб.

18.02.2016    202102    671    543    

562
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. asved.ru 37 09.11.16 08:45 Сейчас в теме
Думал, что речь о платформенном РИБ, чуть не упал со стула. Вы там поаккуратнее с заголовками-то ;)
ArtemFF; artfa; cleaner_it; +3 Ответить
2. zhichkin 1567 10.11.16 23:50 Сейчас в теме
(1) asved.ru,
Согласен с Вами - название выбрал неудачно. Сверился с книгой "Профессиональная разработка в системе "1С:Предприятие 8" - Вы абсолютно правы. Исправил текст статьи.
Для отправки сообщения требуется регистрация/авторизация