Как я победил блокировки (deadlock)
Разработка - Математика и алгоритмы
Скачать файл
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Наименование | По подписке [?] | Купить один файл | |
---|---|---|---|
Блокировки статья
.doc 441,00Kb
1618
|
1618 | Скачать (1 SM) | Купить за 1 850 руб. |
Блокировки
.epf 5,34Kb
461
|
461 | Скачать (1 SM) | Купить за 1 850 руб. |
См. также
Математика и алгоритмы Программист Платформа 1C v8.2 1C:Бухгалтерия Россия Абонемент ($m)
На написание данной работы меня вдохновила работа @glassman «Переход на ClickHouse для анализа метрик». Автор анализирует большой объем данных, много миллионов строк, и убедительно доказывает, что ClickHouse справляется лучше PostgreSQL. Я же покажу как можно сократить объем данных в 49.9 раз при этом: 1. Сохранить значения локальных экстремумов 2. Отклонения от реальных значений имеют наперед заданную допустимую погрешность.
1 стартмани
30.01.2024 4960 stopa85 12
Математика и алгоритмы Бесплатно (free)
Разработка алгоритма, построенного на модели симплекс-метода, для нахождения оптимального раскроя.
19.10.2023 9973 user1959478 54
Математика и алгоритмы Разное Платформа 1С v8.3 1C:Бухгалтерия Россия Абонемент ($m)
Расширение (+ обработка) представляют собою математический тренажер. Ваш ребенок сможет проверить свои знание на математические вычисление до 100.
2 стартмани
29.09.2023 4805 maksa2005 8
Математика и алгоритмы Инструментарий разработчика Программист Платформа 1С v8.3 Мобильная платформа Россия Абонемент ($m)
Что ж... лучше поздно, чем никогда. Подсистема 1С для работы с регулярными выражениями: разбор выражения, проверка на соответствие шаблону, поиск вхождений в тексте.
1 стартмани
09.06.2023 12545 8 SpaceOfMyHead 20
Математика и алгоритмы Программист Платформа 1С v8.3 1C:Бухгалтерия Бесплатно (free)
Три задачи - три идеи - три решения. Мало кода, много смысла. Мини-статья.
03.04.2023 6057 RustIG 9
Механизмы платформы 1С Математика и алгоритмы Программист Платформа 1С v8.3 Россия Бесплатно (free)
В статье анализируются средства платформы для решения системы линейных уравнений в 1С. Приводятся доводы в пользу некорректной работы встроенных алгоритмов, а значит потенциально некорректного расчета себестоимости в типовых конфигурациях.
23.11.2022 5172 gzharkoj 14
Математика и алгоритмы Программист Платформа 1С v8.3 Россия Абонемент ($m)
Обычно под распределением понимают определение сумм пропорционально коэффициентам. Предлагаю включить сюда также распределение по порядку (FIFO, LIFO) и повысить уровень размерности до 2-х. 1-ое означает, что распределение может быть не только пропорциональным, но и по порядку, а 2-ое - это вариант реализации матричного распределения: по строкам и столбцам. Возможно вас заинтересует также необычное решение этой задачи через создание DSL на базе реализации текучего интерфейса
1 стартмани
21.03.2022 9412 7 kalyaka 11
Математика и алгоритмы Программист Платформа 1С v8.3 Бесплатно (free)
Дополнение по формату файлов конфигурации (*.cf) в версии 8.3.16.
16.12.2021 7337 fishca 12
Проблема в том, что при проведении в автоматических блокировках накладывается режим блокировки разделяемый и если две транзакции пытаются захватить одни и те же данные у них это получается, после их обработки каждой из транзакций необходимо выполнить исключительную блокировку транзакций для записи этих данных. В итоге ни одна ни другая этого не может сделать без принудительного прекращения одной из них вот это и есть deadlock. В управляемых блокировках, это решается путем наложения исключительной блокировки данных. Я сам до последнего момента сомневался и поразился результатам. Про SQL я не спорю если у тебя не настроены регламентные задания это увеличит блокировки, но как бы ты их не настраивал ты их не решишь одим sql. У меня с 5 - 7 вечера 40 операторов колотят накладные по 50 - 200 позиций в каждой. А у тебя база какого размера? Сколько юзеров работают?
Проблем с текущим проведение нет никаких. Проблемы начинаются, когда начинают перепроводить задним числом, тогда начинает решать тюнингованность sql.
А вообще я и не говорю о том, что всё можно решить одним sql. Я говорю о том, что сначала нужно решить проблемы с sql, а потом уже делать управляемые блокировки...ну по крайней мере сделать управляемые, но не забыть про sql.
(10) другой вопрос... сколько времени на проведение одного документа уходит?
Не рассмотрена проблема эскалации - я что то не понял там, что в заголовке статьи написано ЭСКАЛАЦИЯ БЛОКИРОВОК.
Это вообще отдельная большая тема.
Пишешь, на русский язык для людей переводишь, с примерами код готовый выкладываешь, а народ еще фукает и говрит не рассмотрена проблема такая то, я что к тебе на защиту диплома пришшел, не нравится не бери.
В статье только сказано:
Вы очень не глубоко изучили этот вопрос и уже пишите слово "победил".
Вас почитают многие люди и сядут в лужу, то что у Вас все (3!!! документа) заработало просто счастливое стечение обстоятельств (мало данных и хорошее железо).
Не слово про измерения и индексы. Про разделяемый режим.
А за основу я взял типовую конфигурацию 1с, насколько я знаю там оптимально это дело настроено (я про индексы говорю). Да и потом, про сядут в лужу, мне это помогло я решил поделится, еще никто не запрещал перед глобальными изменениями делать бекап.
Этот вопрос я изучал около 2-х месяцев и многое перепробывал с настройками sql, ощутимых результатов я не увидел.
3 документа это чудо?
1 - случайность
2 - свопадение
3 - закономерность.
Да и никого я не заставляю это делать. А инфы про управляемые блокировки в нете действительно мало. Книги 1с в свободное скачивание тоже не предостовляются.
вы просто не описали достаточно Важные вещи, о которых вы наверняка знаете. Просто могли упомянуть о них в статье для затравки, а более подробно описать потом. И Ваши читатели бы знали что не все так просто.
1. Статья начиналась как собственное понимание, а закончилась как ЖКК, т.е. нечитаемо, ну или я лично не осилил.
2. Способ помещения задач на проведения под одного пользователя практикуется в УПП давно. Я так понял, вы работали только с УТ и поэтому об этом либо не знали, либо вводите нас в заблуждение
3. Раз уж упомянули мою статью, отвечу:
лучше всего бороться с эскалацией в MS SQL Server 2008, без всяких управляемых блокировок
КАК БОРОТЬСЯ - это мой хлеб, за деньги готов продать свои знания
4. Почему вы не разложили действия этого пользователя по нескольким фоновым процедурам для НЕПЕРЕСЕКАЕМЫХ данных?
5. Радует одно, вы пишите за бесплатно, тем самым заполняя информационный вакуум
я не считаю, раз есть книжки от 1С, значит их дублировать не надо
но пожалуйста не копипастите их, а пишите полностью СВОИ мысли
пусть они буду с ошибками, но Вы же сами и научитесь в результате
по крайней мере, у меня получается учиться таким образом
рейтинговать не буду ввиду изложенного
надеюсь без обид
2. Я работаю под SQL server 2005.
А Управляемыми блокировками решил воспользоваться, т.к. мне интересно показалось. А они чем то плохи? Просто не каждый знает все тонкости SQL server.
В УПП все Вами сказанное есть, в том числе управлемые блокировки.
С другой стороны, заново изобретать велосипед не зазорно, мысли не могут иметь копирайта.
Про эскалацию - управляемые блокировки не могут спасти от эскалации, просто эскалация будет не на субд, а на кластере 1С.
Не правильный, но самый простой метод, который могу озвучить бесплатно - дробление количества движений на более мелкие порции.
.."нарисовалась такая проблема как блокировки (deadlock), собственно о них в дальнейшем и пойдет речь. Блокировка - это информация о том, данный ресурс захвачен "кем то" для выполнения какого-то действия."
.
ну... из того, что я "усвоил" ;-) блокировки и дедлоки - это не одно и то же... Условно: блокировка - рано или поздно кончается, дедлок - это навсегда... ;-)
Блокировки это не проблема.
Ожидание на блокировках это пробема и дедлоки это проблема.
Кроме того не понятно почему deadlock написано в скобках к словку "блокировки", дедлок и блокировка это разные вещи.
Не понятно зачем при удалении проведения ставить УБ?
Рекомендую ознакомиться как сделаны УБ в УПП - она полностью переведена на УБ.
>Рекомендую ознакомиться как сделаны УБ в УПП - она полностью переведена на УБ
Я что-то пропустил? Или речь идет о: "ОбщегоНазначения.УдалитьДвиженияРегистратора(ЭтотОбъект, Отказ,,истина,РежимПроведения);"
Вся типовая конфигурация УПП с работает в режиме блокировок "Автоматический"
то что появилась возможность совсем не означает "она полностью переведена на УБ ".
Для перевода корпеть и корпеть программисту ручками.
Да и режим блокировок не зависит от релизов конфигурации.
Или о чем речь идет? может прямо пример из текста типовой УПП?
В описании нового и в конференции написано, что можно установить режим управления блокировкой - "Управляемый".
Или Вы не верете тому, что она полностью переведена на УБ?
Ну что же оставайтесь при своем, а в тоже время многие уже установили в УПП этот режим и довольны.
Хотя должен признать, что программисту здорово облегчена работа и вместо "корпеть и корпеть" больше подходит "делай как я".
Если очень коротко, то ответ такой: все будет в порядке, платформа автоматически позаботиться обо всем, кроме одного – чтения данных в транзакции. Если вы хотите, чтобы до конца транзакции никто не смог изменить данные, которые вы прочитали, то вам нужно установить на них блокировку. Классический пример – контроль остатков. Вы прочитали остатки, приняли решение и начали записывать движения (в том числе списывать остатки). Если это происходит в автоматическом режиме, то все будет хорошо. Если в управляемом, то ваше чтение не защищено и кто-нибудь может списать ваши остатки после того, как вы приняли решение, но до того, как вы записали движения. В этом случае, ваши проводки могут оказаться некорректными (остатков, на которые вы рассчитывали, может уже не быть).
????
из того что я себе представляю: не может быть универсального решения на управляемых блокировках. все зависит от частностей - от темпов проведения доков, от характера самих доков и от много другого.. то есть чтобы сделать эффективные УБ - надо на живой базе или на тестовом стенде на объемах данных близким к реальным погонять и померять...
????
Категорически согласен. Каждую конфигурацию надо рассматривать отдельно.
И не стыдно за такой плагиат еще и "СтарМани" требовать?!
Ничего нового в статье на две страницы текста не почерпнул :(
Не советую это качать не тратьте время и деньги. вот такая же статья но на халяву :)
Для получения уведомлений о новых публикациях автора подключите телеграм бот: Инфостарт бот
№ 57613
Создание 28.09.09 07:39
Обновление 28.09.09 00:00
Просмотры 23606
Загрузки 2079
Рейтинг
94
Комментарии 64
Код открыт Не указано
Рубрики Математика и алгоритмы
Кому Программист
Тип файла Внешняя обработка (ert,epf)
Платформа Платформа 1С v8.3
Конфигурация 1C:Бухгалтерия
Операционная система Не имеет значения
Страна Россия
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Абонемент ($m)