Оптимизация и повышение стабильности DIRECTUM 5.1

10 0

Стабильность и масштабируемость – одна из главных тем при разработке системы DIRECTUM 5.1. Мы работали над снижением нагрузки на SQL-сервер, уменьшением размера базы данных, повышением быстродействия и стабильности службы Workflow.

Снижение нагрузки на SQL-сервер

Администраторы DIRECTUM часто сталкивались с высокой нагрузкой на центральный процессор SQL-сервера при работе с системой прошлых версий.

Для снижения нагрузки на SQL-сервер и ускорения выполнения операций параметризированы основные запросы, работающие с данными справочников. Теперь для выполнения таких запросов SQL-серверу не нужно заново компилировать план запроса. План запроса компилируется 1 раз и кэшируется. Для выполнения параметризованных запросов используется ХП sp_executesql.

Мы ускорили обработку данных с SQL-сервера при выполнении запросов получения содержимого папок или результатов поиска. В результате число ожиданий с типом ASYNC_NETWORK_IO уменьшилось, и также снизилась нагрузка на SQL-сервер.

В результате нагрузка на SQL-сервер снизилась на 30%, а скорость выполнения операций в системе увеличилась на 15%.

Сжатие задач

В новой версии DIRECTUM появилась возможность сжатия схем задач. Это позволяет существенно уменьшить размер базы данных системы DIRECTUM. До обновления размер таблицы SBTask мог составлять до 25% от размера базы данных, а в некоторых случаях и до 50%. Новая возможность уменьшит размер таблицы SBTask до 10 раз.

Ускорение общего поиска

Ранее общий поиск объектов выполнялся по наименованию объекта или по части слова в его наименовании, при этом поиск проверял последовательно каждый тип объекта. Теперь используется полнотекстовый индекс, и разные типы объектов теперь ищутся одновременно, а не последовательно. Благодаря этому среднее время выполнения поиска уменьшилось примерно в 2,5 раза.

Оптимизация службы Workflow

Благодаря оптимизации в системе DIRECTUM 5.1 служба Workflow стабильно и быстро обрабатывает десятки тысяч задач в день. Что же скрывается под «капотом» обновленной службы Workflow?

При обработке задач большим количеством служб Workflow часто возникала ситуация, когда одну и ту же задачу пытались одновременно обработать разные службы Workflow. При этом в лог-файл многократно записывалось, что выбранную задачу сейчас редактирует пользователь IS-Builder System.

Ранее выборка задач из очереди службы Workflow осуществлялась в порядке постановки задач в очередь. Новый алгоритм выборки уменьшает число попыток выборки одной задачи несколькими процессами.

В предыдущих версиях системы задача выбиралась из очереди, а затем в транзакции на обработку выполнялось удаление из очереди. При большом количестве одновременно работающих процессов задачу из очереди успевали выбрать несколько процессов. Сейчас выборка и удаление задачи из очереди стала осуществляться в рамках одной SQL-операции.

Также мы разделили файлы кэшей разных процессов службы Worlkflow.

Уменьшено число ситуаций, когда обработка задач откладывалась из-за заблокированного объекта, например, вложенного документа. Обработка задачи теперь не откладывается, если во время изменения видимости версии или стадии жизненного цикла документа документ редактируется пользователем.

Пока комментариев нет.

Авторизуйтесь, чтобы написать комментарий