Оптимистический параллелизм (Optimistic concurrency)
Второй этап реализации оптимистического параллелизма направлен на сокращение конфликтов при блокировках в бизнес-функциях Axapta, не основанных на формах (выполненных на X++). Изменения производятся на уровне платформы, что позволяет реализовать модель оптимистического параллелизма и повысить параллелизм практически во всех бизнес-функциях.
Почему эта функция так хороша?
- В рамках подобной инфраструктуры блокировка в базе данных происходит только в отношении строк, требующих обновления.
- Данные блокируются до момента фактического обновления серверной базы данных.
- В результате чтение не блокируется записью; это особенно актуально, когда пользователи обращаются к разным строкам, а оптимальный для данного запроса индекс в таблице отсутствует.
- Поддержка платформ SQL2000, SQL2005.
- Существенная гибкость настройки оптимистического параллелизма обеспечивает корректное взаимодействие с пользовательским и партнерским кодом. Оптимистический параллелизм можно задействовать на глобальном или табличном уровне, а также на уровне операторов.
- Структурированная инфраструктура обработки исключений позволяет фильтровать конфликты обновления исходя из экземпляров объектов в транзакциях.
- Обратная синтаксическая совместимость дает программистам X++ возможность реализовывать оптимистическую блокировку, не переписывая код.
- Новые ключевые слова X++ обеспечивают последовательное поведение, которое исключает корректировку требований бизнес-логики в режиме оптимистического параллелизма.
- Разработчики X++ получают возможность, если это необходимо, сокращать продолжительность транзакций.
Как это выглядит?
Изменения происходят на уровне платформы и в минимальной степени отражаются на пользовательском интерфейсе. Они затрагивают код, внутренние элементы на уровне доступа к данным (AOS), интерпретатор, компилятор и блок исполнения.









