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

См. также

SALE! 10%

Перенос данных из УПП 1.3 в ERP 2 / УТ 11 / КА 2

Обмен между базами 1C Платформа 1С v8.3 1С:Управление производственным предприятием Россия Платные (руб)

Продано более 270 раз! Обработка позволяет перенести из УПП в ERP / 1С:УТ 11 / КА 2 всю возможную информацию. Переносятся документы, а также начальные остатки и справочная информация. Типовая обработка от фирмы 1С не позволяет сохранить документы за период работы. Кроме того, наши алгоритмы выгрузки начальных остатков тоже имеют больше функционала и тщательно проверялись на реальных проектах перехода с УПП на ERP. Наша разработка будет полезна как фирмам-франчайзи, которые периодически выполняют перенос данных для заказчиков, так и организациям, самостоятельно выполняющим проект по переходу. При приобретении обработки вы будете четыре месяца получать ее обновления, далее можно приобрести подписку на обновления. Конфигурации 1С постоянно меняются, выходят новые релизы. Имея подписку на обновления, вы всегда можете быть уверены, что правила конвертации данных будут работать на ваших базах 1С.

50722 45650 руб.

04.08.2015    155910    289    263    

331

SALE! 10%

Перенос данных из УПП 1.3 / КА 1.1 в БП 3.0

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

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

43889 39500 руб.

25.02.2015    166985    282    236    

367

SALE! 15%

[ED3] Обмен для ERP 2.5, КА 2.5, УТ 11.5 БП 3.0, Розница, УНФ и других с EnterpriseData (универсальный формат обмена), правила обмена

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 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. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

25080 руб.

12.06.2017    131750    687    290    

379

SALE! 10%

Перенос данных из УПП 1.3 в БП 3.0. Переносятся документы (обороты за период), справочная информация и остатки

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

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

28000 25200 руб.

15.12.2021    18248    114    36    

69

SALE! 10%

Перенос данных из ERP 2 / КА 2 в ЗУП 3

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

Наша обработка позволяет не только перенести все документы, справочную информацию и начальные остатки из ERP 2 или КА 2 в ЗУП 3, но и организовать регулярный перенос данных между программами 1С:ERP 2 / КА 2 и 1С:ЗУП 3. Вы можете выбрать период отбора данных и установить фильтр по организациям, чтобы выгружать только необходимую информацию. Более того, перенос оперативно обновляется при выходе новых релизов программы 1С, так что вы всегда будете иметь самую актуальную версию обработки.

48278 43450 руб.

03.12.2020    32711    68    56    

70

SALE! 10%

Перенос данных из УТ 10.3 в УТ 11 / КА 2 / ERP 2 (ЕРП 2)

Обмен между базами 1C Взаиморасчеты Оптовая торговля Логистика, склад и ТМЦ Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:Управление торговлей 10 Россия Управленческий учет Платные (руб)

Предлагаем вам качественное и проверенное временем решение для перехода с УТ 10.3 на УТ 11 / КА 2 / ERP 2. Перенос данных находится в продаже с 2015 года, постоянно развивается, им воспользовались уже более 240 компаний. Можно перенести начальные остатки, нормативно-справочную информацию и все возможные документы. При выгрузке можно установить отбор по периоду, организациям и складам. При выходе новых релизов конфигураций 1C оперативно выпускаем обновление переноса данных.

50722 45650 руб.

24.04.2015    188249    264    235    

267

SALE! 10%

Перенос данных из ERP 2 / КА 2 / УТ 11 в БП 3.0

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

Перенос позволяет настроить собственный обмен данными между указанными программами, альтернативный предлагаемому фирмой 1С. Перенос данных осуществляется из 1С:ERP 2 / 1С:КА 2 / 1С:УТ 11 в 1С:БП 3.0. Правила обмена оперативно обновляются при выходе новых релизов программы 1С, так что вы всегда будете иметь самую актуальную версию обработки.

38500 34650 руб.

15.04.2019    66151    164    131    

97

SALE! 10%

Перенос данных из УТ 10.3 в УТ 11.5. Переносятся документы (обороты за период), справочная информация и остатки

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 10 1С:Управление торговлей 11 Россия Управленческий учет Платные (руб)

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

28000 25200 руб.

23.07.2020    43342    188    63    

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