Стабильность и масштабируемость – одна из главных тем при разработке системы DIRECTUM 5.1. Мы работали над снижением нагрузки на SQL-сервер, уменьшением размера базы данных, повышением быстродействия и стабильности службы Workflow.
Администраторы DIRECTUM часто сталкивались с высокой нагрузкой на центральный процессор SQL-сервера при работе с системой прошлых версий.
Для снижения нагрузки на SQL-сервер и ускорения выполнения операций параметризированы основные запросы, работающие с данными справочников. Теперь для выполнения таких запросов SQL-серверу не нужно заново компилировать план запроса. План запроса компилируется 1 раз и кэшируется. Для выполнения параметризованных запросов используется ХП sp_executesql.
Мы ускорили обработку данных с SQL-сервера при выполнении запросов получения содержимого папок или результатов поиска. В результате число ожиданий с типом ASYNC_NETWORK_IO уменьшилось, и также снизилась нагрузка на SQL-сервер.
В результате нагрузка на SQL-сервер снизилась на 30%, а скорость выполнения операций в системе увеличилась на 15%.
В новой версии DIRECTUM появилась возможность сжатия схем задач. Это позволяет существенно уменьшить размер базы данных системы DIRECTUM. До обновления размер таблицы SBTask мог составлять до 25% от размера базы данных, а в некоторых случаях и до 50%. Новая возможность уменьшит размер таблицы SBTask до 10 раз.
Ранее общий поиск объектов выполнялся по наименованию объекта или по части слова в его наименовании, при этом поиск проверял последовательно каждый тип объекта. Теперь используется полнотекстовый индекс, и разные типы объектов теперь ищутся одновременно, а не последовательно. Благодаря этому среднее время выполнения поиска уменьшилось примерно в 2,5 раза.
Благодаря оптимизации в системе DIRECTUM 5.1 служба Workflow стабильно и быстро обрабатывает десятки тысяч задач в день. Что же скрывается под «капотом» обновленной службы Workflow?
При обработке задач большим количеством служб Workflow часто возникала ситуация, когда одну и ту же задачу пытались одновременно обработать разные службы Workflow. При этом в лог-файл многократно записывалось, что выбранную задачу сейчас редактирует пользователь IS-Builder System.
Ранее выборка задач из очереди службы Workflow осуществлялась в порядке постановки задач в очередь. Новый алгоритм выборки уменьшает число попыток выборки одной задачи несколькими процессами.
В предыдущих версиях системы задача выбиралась из очереди, а затем в транзакции на обработку выполнялось удаление из очереди. При большом количестве одновременно работающих процессов задачу из очереди успевали выбрать несколько процессов. Сейчас выборка и удаление задачи из очереди стала осуществляться в рамках одной SQL-операции.
Также мы разделили файлы кэшей разных процессов службы Worlkflow.
Уменьшено число ситуаций, когда обработка задач откладывалась из-за заблокированного объекта, например, вложенного документа. Обработка задачи теперь не откладывается, если во время изменения видимости версии или стадии жизненного цикла документа документ редактируется пользователем.
Авторизуйтесь, чтобы написать комментарий