Между настройкой и поддержкой РИБ на 2 узла и на 10 большой разницы нет, а вот когда число удаленных точек переваливает за сотню, приходится решать уже совсем другие вопросы
(1) asved.ru, Расскажите нам какую архитектуру нужно выбрать что бы не было такого "костылинга"?
А то у меня сеть из 150+ узлов. То же вот костылингом занимаюсь.
В базу магазина будет выгружаться только та информация, которая имеет к нему отношение:
К сожалению есть одно узкое место в механизме установки скидок, это "сегмент номенклатуры". Пришлось переделать правила регистрации ну и и тд. Что бы между магазинами не ходили сегменты.
Что бы данные выгружались именно в нужный узел, а не во все нужно брать напильник.
Создание начального узла РИБ штатным образом сделало бы невозможным тиражирование в принципе.
у меня на пустой базе(только НСИ и 2 работающих магазина) создались только первые 2 магазина штатными средствами и создавались около 1.5 часов каждый. На третьем уже всё... перестал работать штатный механизм.
Наконец, дошли до самого интересного пункта - как же всё это поддерживать и обновлять?
На ИС нашёл публикацию по встраиванию механизмов исполнения произвольного кода в саму конфигурацию. Пишем скрипт, устанавливаем в каких узлах нужно его выполнить и делаем обмен. Этим же механизмом выполняется обновление узлов. Но я пока не пробовал обновлять на типовые обновления. Обновления были только на наши доработки.
кроме того, может привести к превышению базой объёма в 10 ГБ.
Судя по старой базе которая была до Розницы и самой розницы базы раздувают "ЧекиККМ" и регистр "Продажи". Хотя может у меня просто не очень много карт(менее 100 тыс).
При этом часто бывает что данные нам нужно оперативно получать из розничных точек, отдавая при этом только несколько раз в день.
Смотря для какой цели нужно получать данные по несколько раз в день в точках... у нас для целей логистики и тд. Сделали базу в которую продажи приходят из магазинов по web сервисам. Если где то продали то максимум через 10 минут эти данные уже в базе.
Но в целом Розница очень некачественный продукт. Который просто не рассчитан на работу как фронт. И очень много ошибок. Начиная от не понятной арифметики фирмы 1С когда 7% от 1000 руб это 68 руб(хотя может это я так не правильно что то настроил, но как не крутил настроить точнее не получилось) или например при настройке вытеснения скидок. Есть сегмент на который распространяется скидка. Скидки по типу получателей(разные карты). Первые 8 товаров считает правильно, потом начинает считать что попало....
Я вот уже думаю что нужно в магазине на кассе вешать табличку: " Уважаемые покупатели просим извинить за предоставленные неудобства, но мы пользуемся программой 1С: Розница"
На ИС нашёл публикацию по встраиванию механизмов исполнения произвольного кода в саму конфигурацию. Пишем скрипт, устанавливаем в каких узлах нужно его выполнить и делаем обмен
У нас сервер... фоновые задания... кроме того нужно убить клиентов 1С которые подвисают если их скинуть... кроме того прогресс бар отобразить если днём обновляется... да много чего ещё, 1С у нас не прокатило
(10) Фоновые задания и в файловом варианте мешают обновлению. Обновление не проходит. И база остаётся заблокированной. Я сделал все фоновые и тд задания после 14.00. А задание для обновления с утра до 14.00.
Да и из фоновых у меня там только обновление индекса ППД и тд. то есть пара сервисных заданий висит. Обмены у нас утренние запускаются пользователем. А после 14.00 уже автообмены запускаются.
Хотя можно доработать и запускать утренний обмен при входе пользователя....
У меня ещё процесс отладки/наладки/доработки этого всего идёт.
Много ещё недоработок....
200 точек - это совсем немного.
Сопровождали систему, тоже розница (только 1-ой редакции) - свыше 2600 узлов (звезда).
- веб-сервис - пакеты - в каждом пакете - таблица значений с нужными объектами, записями, например, пакет из 1000 записей регистра
- проблемы регистров не было - см. выше
- возможность обмена при несовпадении версий центра и "дочек", обновление конфы дочек - отдельный пакет.
- адм-ние - команды на обновление, отслеживание где, чего и сколько обменялось - отдельная обработка в Центре, без доп. ПО.
- само собой отдельный план обмена на все это + свой механизм формирования пакетов.
(11)
Да, это было не РИБ.
То есть допускался "рассинхрон" версий центра и дочек. При таком количестве точек это допустимо и даже необходимо.
Почему? У вас есть изменение, которое хотите внести в боевую базу. 100% уверенности в его работоспособности нет (все мы люди).
Поэтому обновление дочек идет волнами - 1-ая волна - 10 точек, 2-ая - 100-200 точек, затем если все ОК - вся 2600 точек.
Пакеты использовались как наиболее быстрый способ обмена + не нужно оптимизировать структуру хранения регистров и т.п.
Какие альтернативы РИБ рассматривались до начала проекта ? Неужели их нет ?
В своё время решал проблему реализацией собственной подсистемы регистрации изменений, где не было регистрации общих элементов на каждый узел и блокировок при чтении изменений. Управление регистрацией изменений и их отправкой осуществлялось при помощи версий. Таким образом запись изменений не блокировалась чтением и даже удаление уже ненужных регистраций так же проходило без проблем. Распространение изменений управлялось подсистемой маршрутизации сообщений, которая копировала сообщения если это было необходимо, например, если это были общие элементы. Всё это, в конечном итоге, очень напоминало SQL Server Change Tracking, который появился в 2008 версии. Сейчас я использую этот механизм.
Более того, движения документов ходили в одном сообщении с документами, а одно сообщение всегда загружалось в транзакции. Таким образом мы реализовывали паттерн Aggregate. Насколько я понимаю РИБ эту проблему не решает и движения могут периодически "долетать" позже самого документа или наоборот. Кстати как вы решаете эту проблему ?
(13)
По опыту работы с подобной архитектурой (РИБ > 200 узлов, розница), основными проблемами были следующие:
1. Блокировки при "ПрочитатьИзменения".
2. Всплески объёмов при закачке новых подарочных сертификатов и подобных вещей.
3. Разсинхронизация движений документов с самими документами (не криминально, просто надо знать, что такое может неожиданно быть).
4. Обновления конфигураций, которые периодически останавливали работу магазина из-за ошибок обновления.
5. Тяжёлый код, в том числе разрешения коллизий, который тормозит проведение документов при регистрации в обмен.
6. Если обмены вставали на сутки, то возникал риск, что прокачка обменов не догонит рост объёмов изменений.
7. Наличие в магазинах кода и подсистем, которые им совершенно не нужны, а обновления всё равно делать надо.
Как-то так. Ничего не забыл ?
Больше всего проблем было с блокировками и скачками объёмов. На втором месте ошибки обновлений или сам факт необходимости обновлений.
Как решать:
1. Обновление в отдельной системе, как у вас, это +100 - нельзя логику обменов мешать с логикой технического сопровождения - это большой архитектурный косяк на мой взгляд.
2. Версионирование изменений решает проблему блокировок (по сути организация работы с очередями). По другому никак и это, по моему скромному мнению, ещё один архитектурный факап планов обмена.
3. Нужно упрощать код в транзакциях проведения документов. Мне кажется не стоит смешивать бизнес-логику и логику обмена данными.
Это, наверное, основное.
(16) "6. Если обмены вставали на сутки, то возникал риск, что прокачка обменов не догонит рост объёмов изменений. "
А какие объёмы данных? Сколько документов в сутки?
"1. Обновление в отдельной системе, как у вас, это +100 - нельзя логику обменов мешать с логикой технического сопровождения - это большой архитектурный косяк на мой взгляд."
Обмены и техническое сопровождение можно разнести по времени или по подсистемам например обслуживание можно сделать на той же 1С и вынести все функции например в web сервисы что бы не было зависимости от пакетов обмена....
Отдельная система это хорошо, но требует отдельных людей на разработку и поддержку. Не у всех есть такой ресурс.
"3.Нужно упрощать код в транзакциях проведения документов."
А можете подробней написать? Как пример что можно упростить и как это скажется на скорости обменов?
Чувствую после какого то количества магазинов этот вопрос будет для меня очень актуальным....
(17) TODD22,
А какие объёмы данных? Сколько документов в сутки? Центральная база данных = 6 Тб.
База данных среднего магазина = 6 Тб / 200 = 30 Гб (приблизительно).
Обмен в центральной базе запускали каждые 10 - 15 минут. Это делалось для того, чтобы сообщения обмена были как можно меньше и соответственно транзакции выгрузки короче. Одно сообщение обмена "весило" в среднем где-то 30 Мб в xml. Естественно, что для транспортировки оно сжималось архиватором.
"3.Нужно упрощать код в транзакциях проведения документов."
А можете подробней написать? Как пример что можно упростить и как это скажется на скорости обменов? Я имел ввиду, что когда используется ручная регистрация изменений в плане обмена, то обычно это делают в подписке на события документа или даже в самом модуле объекта документа. Таким образом происходит смешение бизнес-логики документа и логики обмена данными. Кроме того, что это само по себе плохо как архитектурное решение, это удлиняет транзакцию проведения документа и создаёт дополнительные риски возникновения ожидания на блокировках и, как следствие, ошибок таймаута ожидания. В качестве решения подобных проблем я бы рекомендовал использовать везде, где можно, только автоматическую регистрацию изменений, а там, где это по каким-то причинам невозможно, делать максимально простую и быструю регистрацию наподобие отложенного проведения. Далее уже отдельным регламентным заданием разбираться что и куда делать по задачам обмена.
Я не люблю универсальных советов. Считайте, что это общий ответ. Любое решение принимается в каком-то конкретном контексте ...
То есть документ есть, а движений нет? Или движения есть, а документа нет? Что имеется ввиду под рассинхронизацией? Да, всё верно. Бывают оба варианта. Для того, чтобы так случилось, необходимо, чтобы документ и его движения попали в разные транзакции загрузки при импорте сообщений обмена. Как это получилось в нашем случае, если честно, то я уже не помню. Возможно, что как-то криво регистрировали изменения вручную и они попадали в разные сообщения обмена.
"3.Нужно упрощать код в транзакциях проведения документов."
А можете подробней написать? Как пример что можно упростить и как это скажется на скорости обменов? Я имел ввиду, что когда используется ручная регистрация изменений в плане обмена, то обычно это делают в подписке на события документа или даже в самом модуле объекта документа. Таким образом происходит смешение бизнес-логики документа и логики обмена данными. Кроме того, что это само по себе плохо как архитектурное решение, это удлиняет транзакцию проведения документа и создаёт дополнительные риски возникновения ожидания на блокировках и, как следствие, ошибок таймаута ожидания. В качестве решения подобных проблем я бы рекомендовал использовать везде, где можно, только автоматическую регистрацию изменений, а там, где это по каким-то причинам невозможно, делать максимально простую и быструю регистрацию наподобие отложенного проведения. Далее уже отдельным регламентным заданием разбираться что и куда делать по задачам обмена.
Я не люблю универсальных советов. Считайте, что это общий ответ. Любое решение принимается в каком-то конкретном контексте ...
"Ручная" регистрация (ПланыОбменов.ЗарегистрироватьИзменения...) это зло, но лечение простое, добавить нужные узлы в <Объект>.ОбменДанными.Получатели, тогда непосредственно сама регистрация будет сделана платформой, как если бы объект регистрировался автоматически.
133.
Sergey.Noskov
117908.12.16 18:46 Сейчас в теме
(132) мы у себя сильно уменьшили нагрузку на сервера приложений заменив на 3. Сжимает на копейки меньше, а разница в потреблении процессора существенная.
(133) Логично. Но по процессору сейчас сервер пока простаивает, да и по загрузке оборудования вцелом. По сравнению со злополучными блокировками во время "ВыбратьИзменения" всё остальное мелочи.
129.
Sergey.Noskov
117908.12.16 10:43 Сейчас в теме
(127) Олег, конечно, коменты эт самое сладкое ;)) Не осилил монументальные сообщения вида "подпи* ", но по диагонали читается быстро, опять таки вспомнил про couchdb.
Про независимые РС - убираем галку "основной отбор" у "неадресных"и "неиспользуемых в блокировках" измерений, тогда ценой снижения времени записи (незначительного, в некоторых случаях, когда записывается только наборами, вообще с ускорением записи) значительно ускоряется регистрация, выгрузка и загрузка.
Про тиражирование - когда-то давно работал в компании с 70 узлами РИБ, где новые узлы делались копированием. И один раз в разных узлах создался документ с одинаковым УИДом. очень долго искали причину "пропадания" данных. Это было во времена 8.1, сейчас может быть всё лучше.
(8) Fragster,
не лучше, недавно создали 4 подчиненные базы, в каждой из них создали группы доступа копированием базовой, так вот в 2 базах при последующем обмене с ЦБ они в итоге совпали с одним работающим магазином
Я ещё тут смотрел в сторону 2is. Вроде как конфигурация позволяет очень сильно расширить функционал стандартных обменов. Но пока что то не дошли руки....
РИБ - это самый страшный из обменов. В один прекрасный момент (например после восстановления центральной базы) можно остаться без обмена на пару дней. Основной минус РИБ - это завязка на конфигурацию. Два раза подряд без обмена обновил центр и обмен встал.
В идеале надо:
1. Отдельную систему по распространению конфигурации
2. Жесткий формат файла обмена
3. Четкое описание миграции данных
Хорошо работает jenkins(систему по распространению конфигурации) + XDTO(формат файла обмена) + MSMQ(транспорт)
(22) Система (jenkins) смысл которой заключается в установки новой версии продукта притянута за уши?
Я говорил о неизменности формата обмена, а не о XDTO как таковом.Смысл в формате если 2-3 дня надо (гиперболизирую конечно), что бы его поняли все узлы?
Система (jenkins) смысл которой заключается в установки новой версии продукта притянута за уши?
Однозначно. Мы не устанавливаем новую версию продукта. Мы "меняем репликацию". Главный смысл тут скорее в резервном копировании, взаимодействии с пользователем и т.п.
А не в том чтобы выполнить развертывание под различные варианты дейвайсов с различными версиями Linux-а c различным набором установленных пакетов...
(59) awk, Нет, всё правильно. Обновление ЦБ - это релиз продукта. Его в принципе можно реализовать с использованием jenkins, когда немного процессы работы перестроим наверное к этому придём. Ну а обновление узлов... это лишь технический процесс репликации, которая в 1С реализована несколько "специфичным" образом
Имею на обслуживании розничную сеть, в одном из узлов которой 50 розничных точек в РИБ Розницы. Поклялся никогда больше так не делать. Смотрите в строну промышленных решений (не сочтите за рекламу, тот же Астор). Там в виде кассовой программы используется атоловский Frontol, который синхронизируется с центром с помощью их модуля SIS. Видел в работе, работает на порядок быстрее. С фоновым обменом и обновлением.
От типовой розницы, после того как ее адаптировать к таким объемам, мало что остается. Зачем себя так мучить? У вас сколько элементов в справочнике номенклатуры? Представьте, что в результате смены сегментов или других реквизитов (которые может и не выгружаются в розницу), у вас из основной базы в розницу уйдет весь справочник номенклатуры, а потом он разойдется по магазинам. А менеджеры запросто могут так отправить на изменение 100 тысяч элементов за день. Представьте размеры файлов XML и время загрузки этих сообщений. А ведь для розницы то могли и ничего не поменяться, и весь это объем гонялся в пустую...
(27) TODD22, Я вам говорю о том, что Розница может конечно работать и с таких объемами, но для этого нужно ее превратить в другую конфигурацию. Есть проблемы со скоростью записи, лишними объектами и движениями, блокировками при выгрузки сообщений обмена. Если на кассах стоит специализированная кассовая программа, то в ней размер файла обмена значительно меньше и уходит только то, что нужно в кассовой программе. Например, изменение сегмента не влияет на выгрузку.
Мое мнение конечно субъективное. Просто я увидел как работает из коробки Асторовская система и знаю как из коробки работает Розница. Что бы Розница работала хотя бы так же, ее пилить и пилить.
А на что кстати жалуются ваши знакомые? Действительно интересно услышать стороннее мнение..
Например, изменение сегмента не влияет на выгрузку.
Это как так? Если у меня на сегмент завязаны скидки покупателям. Изменили сегмент и увеличили количество номенклатуры на которую распространяется скидка и она не выгружается? Покупатель не получил скидку....? Или что подразумевается под "не влияет на выгрузку"?
Я вам говорю о том, что Розница может конечно работать и с таких объемами, но для этого нужно ее превратить в другую конфигурацию. Есть проблемы со скоростью записи, лишними объектами и движениями, блокировками при выгрузки сообщений обмена.
Так нет такой программы которая бы подходила всем и на 100% и ничего в ней допиливать не надо было... Если есть то дайте знать... Я себе обязательно поставлю. Когда я рассматривал программы для Розницы пришёл к выводу что проблем везде хватает.
А на что кстати жалуются ваши знакомые? Действительно интересно услышать стороннее мнение..
Жалуются на обмены, на ошибки и ещё всякие недочёты... Кстати зашёл на сайт Астора, там эта компания в которой я интересовался у коллег в списке внедрений висит.
Что бы Розница работала хотя бы так же, ее пилить и пилить.
да нормално она работает. Чтобы там работало 300 пользователей в распределенке конечно надо пилить... как и любую конфу в которой работает 300-400 юзеров. Я видел фронтол... сильное чувство что пилить его намного больше. Из коробки там функционала меньше
рограммы используется атоловский Frontol, который синхронизируется с центром с помощью их модуля SIS. Видел в работе, работает на порядок быстрее. С фоновым обменом и обновлением.
астор - ацкая штука - в итоге отказались. У них логика обменов - просто ад. При обмене еще и документы допроводятся, что тормозит процесс обмена между центром и магазином - просто катастрофически
В одной из логистических контор плюнули, в конечном счете на РИБ, потому что он перестал справляться от слова "совсем" и написали систему которая стала гонять SQL таблички выкидывая их в bcp. Сжатый бинарник мгновенно пулялся на центральный сервер, разворачивался в табличку промежуточной базы ну а затем insert, update, delete минуя "родную" платформу. Тоже самое в обратку. Конечно тут ни о каком использовании типового механизма речи не идет в принципе, да. Таблицы миллионники гонялись вообще без какого-либо особого влияния на скорость работы.
конечном счете на РИБ, потому что он перестал справляться от слова "совсем"
ну и наверное зря. Есть же парни из 2is которые с РИБ "творят чудеса" на крайний случай. Ну и если уже не справится то нужно конечно не в SQL а в NoSQL это пулять... насколько я понял по итогам конференции
что не получилось с Change Tracking и чем РИБ лучше
DDL же Change Tracking не переносит. Ну это на первый взгляд. На самом деле думаю проблем куда больше
Что Вы думаете о решении СофтПоинт repltech.ru ? Не рассматривали такое ?
- Думаю что оно стоит от 1 млн (это на 1 узел), ХЗ как потом его обслуживать - сторонняя закрытая приклада + в магазинах есть вероятность перехода на Postgre + обновление ИБ оно не решает. Короче лучше уж в коучдб всё выгружать.
Решает. Есть менеджер обновлений. Чем-то похож на Ваш MagicUpdater.
Есть возможность "докручивать" логику фильтрации на 1С из прикладного решения.
Мы заказывали бесплатную демонстрацию. За 2 часа нам ответили на все вопросы и показали всё "вживую" на удалённом сервере. Наш DBA был в восторге.
Приобретать пока что не стали. Почему - не знаю. Не мой вопрос =)
вот это больше всего и напугало когда прочитал что это и как это. Была надежда что как то научились обновлять без завершения сессий и человеческого участия, а тут нет...
Даже до первой версии updater-а ему очень далеко...
Есть возможность "докручивать" логику фильтрации на 1С из прикладного решения.
Это вообще полностью бессмысленное занятие. Правила регистрации замечательная, быстрая, удобная работающая штука... к ней претензий нет.
Приобретать пока что не стали.
это правильно, у нас репликация SQL и отслеживание изменений работает на другом прикладном решении (не 1С). Мягко говоря недалеко она ушла от РИБ и в чистом виде. Колонку в таблицу боимся добавить :).
Имеет смысл это решение смотреть если хочется чтобы репликация была по скорости как двухфазная фиксация... и узлов много а денег ещё больше...
Дисконтных карт скопилось уже близко к 3 млн. Для работы с ними используется внешняя online система
Эксплуатация сервиса дисконтных карт на couchdb обойдётся минимум в 10 раз дешевле, работать будет в 10 раз быстрее, а если сделать распределенную систему, то еще и в 10 раз надёжнее. Итого, 10^3 в 1000 раз эффективнее.
Эксплуатация сервиса дисконтных карт на couchdb обойдётся минимум в 10 раз дешевле,
По сравнению с чем?
работать будет в 10 раз быстрее
По сравнению с чем?
а если сделать распределенную систему, то еще и в 10 раз надёжнее.
Надёжнее по сравнению с чем? Зачем делать распределёнку? 3 млн карточек это что очень много?
Так же нужен будет специалист по couchdb, нужен тот кто это разработает и будет обслуживать....
Есть бесплатные специалисты которые разработают сервис в 10 раз дешевл, в 10 раз быстрее и в 10 раз надёжнее?
(44) "По сравнению с тем, что озвучил автор статьи в частном разговоре."
А тогда понятно... а то как то не понятно было по сравнению с чем дешевле и лучше.... Хотя понятней не стало по сравнению с чем :)
"Да, таких людей много."
Можете привести пример? или ссылку где искать людей которые смогут бесплатно разработать базу?
А почему именно на couchdb?
У меня в сети бонусные карты.
Дисконтные карты у вас так же как и в Рознице реализованы? В результате нужно получить сумму покупок и набор товаров которые приобретал покупатель за период?
Или у вас что то больше вкладывается в понятие дисконтных карт?
(53) TODD22, Ну да, там куда сложнее... да и карточек уже 3 млн, а в день на тысяч 5 становится больше... плюс меняются, вообщем в РИБ это нельзя впихивать
(54) В РИБ понятно. Почему именно couchdb? Я просто с документоориентированными не работал. Но из описания они заточены под хранение документов.
А ДК это же не документы.
В чём профит couchdb перед тем же postgresql например?
(55) TODD22, Ну как минимум тем что оно раз так в 10-15 быстрее... И репликация - это его основа...
А нам как раз и нужно туда json запихнуть в одном месте, потом везде считать.
(56) Всё равно не понимаю... вроде и про couchdb почитал.
Данные же в "табличном" виде должны хранится что бы получить например сумму всех покупок по карте или список всех товаров по карте?
Или я ошибаюсь?
Мне кажется что документоориентированная БД не сможет полноценно заменить реляционную в том что касается работы с табличными данными.
(57) TODD22, Если нужна агрегация то наверное да... но нам нужно хранить плоскую таблицу - карточек. В которую добавим сумму накопленных бонусов скорее всего
Если нужна агрегация то наверное да... но нам нужно хранить плоскую таблицу - карточек. В которую добавим сумму накопленных бонусов скорее всего
А в чём проблема с картами у вас? 3 млн это не такое уж и большое количество как мне кажется.
И если в нём проблема то можно сделать несколько баз с разными диапазонами карт.
(62) TODD22, Проблема в том что ежедневно добавляется ещё тысяч 10... и модифицируется ещё столько же.
Ограничение SQL Express 10 ГБ база, ограничение обмена - 15 минут.
И если в нём проблема то можно сделать несколько баз с разными диапазонами карт.
Приходит такой клиент, даёт кассиру карточку, а кассир - "ой, погодите, это в другой базе - сейчас вторую базу открою" :)))))))))
Проблема в том что ежедневно добавляется ещё тысяч 10... и модифицируется ещё столько же.
Ограничение SQL Express 10 ГБ база, ограничение обмена - 15 минут.
Да это как бы не проблема... есть же например Postgres.
Приходит такой клиент, даёт кассиру карточку, а кассир - "ой, погодите, это в другой базе - сейчас вторую базу открою" :)))))))))
У вас пользователь что руками бонусы в базе ищет?
Сделали по диапазонам. И обращаетесь к разным разным базам по диапазонам через web сервисы. У меня по крайней мере так. Горизонтальное масштабирование или как его там правильно.
Мисье знает толк в извращениях :))))
Держать в магазине Web сервер, несколько баз и разделять на диапазоны это конечно жесть.
А зачем мне бонусный сервер в магазине? Он у меня в офисе.
К нему через web сервис обращаются магазины для получения бонусных баллов.
Какое тут извращение? Всё просто и очевидно. Разделение на диапазоны вполне логичное и простое решение по увеличению производительности.
Зачем в каждом магазине ставить ДС? Работал с таким решением... и сидеть потом мучится с обменами между дисконтными серверами?
Сервер один на все магазины.
В принципе скоро говорят 1С будет нормально с Postgres работать... но пока только говорят.
А зачем вам 1С в таком случае? Это может быть база сделана без прокладки в виде 1С. А без 1С задача ДС на Pg вполне решаема. И не надо ждать пока там 1С чего то сделает.
Можете сделать на том же ms sql express разделить базы на диапазоны если упёрлись в ограничения бесплатной версии сделали ещё одну базу с другим диапазоном.
(68)Смысл делать оффлайн решение? При наличии интернета и web сервисов? Плюс проблемы синхронизации между разными магазинами.
Вот мы например пивом торгуем у нас магазины зачастую в соседних домах. За 15 минут покупатель успеет посетить 3 магазина и во всех списать бонусы. Или если обмен встанет между магазинами.
[IS-QUOTE]Ограничение SQL Express 10 ГБ база, ограничение обмена - 15 минут.
Да это как бы не проблема... есть же например Postgres. [/IS-QUOTE]
(0) задам неозвученный вопрос. Момент выбора СУБД аккуратно пропущен. Почему не Postgres? Удобство администрирования MS SQL? Может быть есть какие-то на него интеграции? Хватает ли 1 ГБ оперативки sql-серверу?
Вот тут написано, что гигабайт всего один, а не два.
Postgress:
- Нужно обучение персонала администрированию
- Неизвестно где и что свалится
- Работает существенно медленнее MS SQL (тут может и не postgress виноват но тем не менее)
- Стабильнее 1С работает с MS SQL. а 200 серверов тут нужна стабильность
(63)
1. Сетевой трафик. Каждый день +10 000 карт скидок. Одна карта это, предполагаю, где-то 100 байт чистых данных. Пусть даже 200. Если учесть накладные расходы в виде XML, например, то это, возможно в 5 раз больше - пусть 1 Кб. Итого имеем около 10 Мб трафика для новых карт на 1 магазин. Ещё столько же по обновлённым картам. 20 Мб трафика на 1 магазин. С учётом сжатия наверное где-то 2 Мб. Это только трафик и это немного - почти ничего.
2. Обработка данных. 20 Мб XML загрузить в базу магазина ... ну минуты должно хватать на мой взгляд. По идее в 15 минут должны укладываться даже с выгрузкой/загрузкой и передачей по сети. Какой целевой показатель устанавливаете Вы ?
3. Рост базы данных. (200 байт х 10 000 карт) чистых данных в день = 2 Мб в день = 60 Мб в месяц = 720 Мб в год ... ну как-то вроде бы нормально ... 10 Гб должно хватать.
Чего я не так считаю ? Поделитесь, пожалуйста, фактическими показателями =)
1) Ну одна карта это не 100 байт конечно :). Но трафик это меньшая из проблем.Обмен должен быть не более 15 минут. Карты будут очень долго выгружаться
20 Мб XML загрузить в базу магазина
даже если 1 минута, что конечно не так... то 1 * 200 = 200 минут... только на загрузку, а всего 4 процессса:
- выгрузка сообщения
- загрузка сообщения
- выгрузка ответа
- загрузка ответа...
Параллельность возможна... но "ВыбратьИзменения" нам параллельность ограничичвает. Вообщем много ещё Вы не понимаете...
3. Рост базы данных.
Ну вы прочитайте про организацию SQL, внутреннюю структуру хранения 1С, юникод.. и т.п. и считайте уже нормально. Кроме того 3 млн уже есть :)
(82)
Прошу прощения, что был неправильно понял. К сожалению, под рукой нет 1С:Розницы. Суть моего комментария заключалась в том, чтобы кратко описать методику подсчёта объёмов данных и получить от Вас более точные цифры, если это не секрет конечно же =)
Кстати, выгрузку можно делать 1 раз. Загружать конечно же придётся 200 раз, но в каждом отдельно взятом магазине, то есть в сумме загрузка будет равна, например, 200 минут, но выполняясь параллельно в каждом магазине можно считать что это 1 минута. Условно конечно же, но моя мысль я думаю понятна.
Я в курсе, что РИБ регистрирует изменения на 200 узлов и, следовательно, одной выгрузкой не ограничишься =) Однако я ничего не говорил о том, что в своих расчётах я опирался только на средства типового РИБ =) Можно сделать, например, отдельный от РИБ план обмена только для ДК и выгружать их только 1 раз, затем копировать файл 200 раз или забирать его из магазинов, что будет ещё эффективнее. И это только одно из решений, которое приходит на вскидку.
Интересно было бы всё-таки услышать от Вас конкретные цифры из Вашей практики. Заранее спасибо =)
можно. Но тогда без гарантированной доставки, тогда это уже не РИБ .
Можно сделать, например, отдельный от РИБ план обмена только для ДК
если уже извращаться и отказываться от гаранитированной доставки, то планы обмена смысл теряют... тогда CouchDB.
Интересно было бы всё-таки услышать от Вас конкретные цифры из Вашей практики
Я не сохранил историю когда было всё плохо. Помню что файлы по 50 МБ у нас были (это сжатый XML). Обновления были АД-ом
Но в деталях расчет не вёл. Сейчас осталась проблема обмена ДК, её решаем через стороннюю систему.
(0) расскажите, как вы создаёте тестовый контур, базы для разрабов? сколько тестовых баз в него входит на каждом уровне распределёнки? руками разворачиваете или скриптами? как поддерживаете свежесть данных в тестовых базах?
как вы создаёте тестовый контур, базы для разрабов?
Базы для разрабов копируются со специального "тестового магазина".
Распределенка одного уровня, я же писал. Пока сможем поддерживать звезду будет звезда.
сколько тестовых баз в него входит на каждом уровне распределёнки?
Девелоперских баз - 6
Тестовых - 2
руками разворачиваете или скриптами?
Руками. Девелоперские базы обновляются не чаще раза в 3-4 месяца.
А тестовые - как правило конкретный магазин, его скриптом не заберёшь
как поддерживаете свежесть данных в тестовых базах?
Вовсе нет никакого желания меряться.
На момент начала нашего внедрения очень беспокоил вопрос количества узлов, которые выдержит РИБ. И вообще интересовал опыт успешного фунциклирования РИБ больше 100 узлов.
В интернете удалось найти только инфу о 120 узлах.
Столкнулись с большим количеством проблем, большинство которых уже описано в комментариях.
Основные:
1) обновление узлов,
2) проблема нестабильной работы с фискальниками,
3) блокировки,
4) обмен данными,
5) создание начальных узлов,
6) работать надо с ЕГАИС следовательно карежить конфигурации надо аккуратно, чтобы была возможность накатить обновления выпускаемые 1с
7) и т.д.