Size: a a a

1С, БСП, DevOps и Архитектура

2020 July 24

NG

Nikita Gryzlov in 1С, БСП, DevOps и Архитектура
Ivan Smirnov
Господа, как бы вы решили задачу по сквозной нумерации нескольких видов документов, без добавления новых реквизитов (номер по факту доп поле)? Регистр сведений документ + номер? Как контролировать запись в один момент сразу двух документов, чтобы не получить один номер на двоих?
дополнительный справочник. можно подчиненный чему-нибудь, организации например. с нумерацией в пределах владельца.
источник

PZ

P Z in 1С, БСП, DevOps и Архитектура
Nikita Gryzlov
дополнительный справочник. можно подчиненный чему-нибудь, организации например. с нумерацией в пределах владельца.
Плохо.
В момент высоких нагрузок сервис нумерации сходит с ума.
+ Высокие затраты на дополнительные объектные сущности
источник

PZ

P Z in 1С, БСП, DevOps и Архитектура
Точнее на их создание и запись
источник

NG

Nikita Gryzlov in 1С, БСП, DevOps и Архитектура
P Z
Плохо.
В момент высоких нагрузок сервис нумерации сходит с ума.
+ Высокие затраты на дополнительные объектные сущности
ну, три года в проде, полет нормальный :) хотя нумератор не на миллионы, конечно. так, сотня тысяч, может две сотни
источник

NG

Nikita Gryzlov in 1С, БСП, DevOps и Архитектура
а по поводу плохо - надежно и с блокировками все не так плохо, как с регистром
источник

SZ

Serferian Zverev in 1С, БСП, DevOps и Архитектура
источник

PZ

P Z in 1С, БСП, DevOps и Архитектура
Nikita Gryzlov
ну, три года в проде, полет нормальный :) хотя нумератор не на миллионы, конечно. так, сотня тысяч, может две сотни
Ну тык все меняют большие нагрузки.
Наоборот вариант с регистром не разу не сбойнул, в отличии от чправочника
источник

IS

Ivan Smirnov in 1С, БСП, DevOps и Архитектура
Nikita Gryzlov
а по поводу плохо - надежно и с блокировками все не так плохо, как с регистром
А чем плох регистр? Я конечно не встречал проблем с нумерацией в справочниках пока, но нужно масштабируемую систему создать, может быть и миллионы записей
источник

DM

Dmitry Makarevich in 1С, БСП, DevOps и Архитектура
Ivan Smirnov
А чем плох регистр? Я конечно не встречал проблем с нумерацией в справочниках пока, но нужно масштабируемую систему создать, может быть и миллионы записей
Параллельность работы если регистр планируют использовать как менеджер. Встречал в типовых что на регистр ставилась исключительная блокировка, когда его метод выдал номер. Если это в событии перед записью тогда она держится до конца транзакции. Параллельно создаваемые документы ждали. Типовая по моему Казахстана была.
источник

PZ

P Z in 1С, БСП, DevOps и Архитектура
Dmitry Makarevich
Параллельность работы если регистр планируют использовать как менеджер. Встречал в типовых что на регистр ставилась исключительная блокировка, когда его метод выдал номер. Если это в событии перед записью тогда она держится до конца транзакции. Параллельно создаваемые документы ждали. Типовая по моему Казахстана была.
Не ну сдуру и не такое можно сделать.
Конечно надо делать аккуратно
источник

DM

Dmitry Makarevich in 1С, БСП, DevOps и Архитектура
P Z
Не ну сдуру и не такое можно сделать.
Конечно надо делать аккуратно
Интересно, а как сделать без потери параллельности? Добавить избирательные измрения? Тип документа , день. В любом случае для полной консистентости будет требоваться исключительная блокировка. Последовательная выдача номеров в рамках измерений, полей блокировки. Так и так придеться чем то жертвовать из acid )
источник

PZ

P Z in 1С, БСП, DevOps и Архитектура
Dmitry Makarevich
Интересно, а как сделать без потери параллельности? Добавить избирательные измрения? Тип документа , день. В любом случае для полной консистентости будет требоваться исключительная блокировка. Последовательная выдача номеров в рамках измерений, полей блокировки. Так и так придеться чем то жертвовать из acid )
Зависит от задачи.
Если прям сквозная по всем документам то иного способа и нет.
В таком случае если это будет на справочнике тоже висеть до конца транзакции
А если по одному или группе, то да, ещё одним измерением
источник

PZ

P Z in 1С, БСП, DevOps и Архитектура
В случае отката транзакции - будут пропуски в нумерации, очень их не любят.
+ Нумератор сбоит
источник

DM

Dmitry Makarevich in 1С, БСП, DevOps и Архитектура
P Z
Зависит от задачи.
Если прям сквозная по всем документам то иного способа и нет.
В таком случае если это будет на справочнике тоже висеть до конца транзакции
А если по одному или группе, то да, ещё одним измерением
Коллега, который поднял этот вопрос говорил о милионах записей, предполагаю что с объектами будет интенсивная работа) придеться очень хитро делить
источник

PZ

P Z in 1С, БСП, DevOps и Архитектура
Dmitry Makarevich
Коллега, который поднял этот вопрос говорил о милионах записей, предполагаю что с объектами будет интенсивная работа) придеться очень хитро делить
Миллион за какой период?
Если 10000 в день то это миллион за 100 дней, тут извращаться даже не придется.
Если миллион в день, то это хайлоад и авторское решение
источник

DM

Dmitry Makarevich in 1С, БСП, DevOps и Архитектура
P Z
Миллион за какой период?
Если 10000 в день то это миллион за 100 дней, тут извращаться даже не придется.
Если миллион в день, то это хайлоад и авторское решение
Согласен, только если эти 10000 не в течении 1 или 2 часов интенсивной работы формируются по бизнес пооцессу
источник

DM

Dmitry Makarevich in 1С, БСП, DevOps и Архитектура
P Z
Миллион за какой период?
Если 10000 в день то это миллион за 100 дней, тут извращаться даже не придется.
Если миллион в день, то это хайлоад и авторское решение
В течении дня разумеется)
источник

PZ

P Z in 1С, БСП, DevOps и Архитектура
Dmitry Makarevich
Согласен, только если эти 10000 не в течении 1 или 2 часов интенсивной работы формируются по бизнес пооцессу
Ну смотри.
Как ИМХО, эмпирически.
До 10 объектов одного типа в секунду все ок.
Свыше 10 в секунду уже авторский подход.
источник

DM

Dmitry Makarevich in 1С, БСП, DevOps и Архитектура
P Z
Ну смотри.
Как ИМХО, эмпирически.
До 10 объектов одного типа в секунду все ок.
Свыше 10 в секунду уже авторский подход.
Если объекты "легкие" в записи
источник

PZ

P Z in 1С, БСП, DevOps и Архитектура
10000 за час это 3 дока в секунду. При прочих равных проблем быть не должно.
Возможно это будут фоновые задания с менеджером и ТД.
источник