Единица запросов
Единица запросов — это условная метрика, используемая в системах автоматизированного проектирования (САПР), трёхмерного моделирования, геоинформационных системах (ГИС) и некоторых других программных продуктах для измерения объёма вычислительных ресурсов, затрачиваемых на выполнение операции запроса к базе данных, модели или чертежу. Данная единица не является стандартизированной физической величиной (например, метром или секундой), а представляет собой внутреннюю расчётную единицу, значение которой зависит от конкретной программы, версии, сложности обрабатываемого объекта и типа выполняемого запроса. В контексте лицензирования и ценообразования «единица запросов» может выступать как способ тарификации использования программного обеспечения, особенно в облачных (SaaS) и серверных решениях, где оплата взимается не за фиксированное время работы, а за фактически потреблённые вычислительные ресурсы.
История возникновения
Понятие «единица запросов» (англ. Request Unit, RU) впервые получило широкое распространение в середине 2010-х годов с развитием облачных технологий и базами данных как услуга (DBaaS). Классические модели лицензирования САПР — по числу рабочих мест (per-seat) или по числу ядер процессора — оказались негибкими для облачных сред, где нагрузка может резко меняться. Компании, такие как Microsoft (Azure Cosmos DB) и Autodesk, начали внедрять метрики, позволяющие оценивать стоимость выполнения отдельных операций: чтения, записи, вычисления, рендеринга. В САПР и ГИС аналогичный подход появился для оценки сложности запросов к пространственным данным: например, поиск пересечений полигонов или расчёт буферных зон может потребовать значительно больше ресурсов, чем простое отображение точки.
Классификация и типы единиц запросов
В зависимости от области применения и типа вычислений единицы запросов можно разделить на несколько категорий:
По типу операции
- Запросы на чтение — получение данных из базы или модели без их изменения. Обычно оцениваются как наименее затратные (например, 1 RU за запрос одного простого объекта).
- Запросы на запись — создание, изменение или удаление данных. Требуют больше ресурсов, так как включают проверку целостности, индексацию и журналирование (например, 5–10 RU за одну запись).
- Вычислительные запросы — операции, требующие сложных математических расчётов: построение трёхмерной сетки, трассировка лучей, анализ коллизий. Могут потреблять от десятков до тысяч RU.
- Пространственные запросы — в ГИС: поиск объектов по расстоянию, площади, пересечению. Сложность зависит от количества обрабатываемых геометрических примитивов.
По способу тарификации
- Фиксированные единицы — каждая операция имеет заранее известную «цену» в RU, определённую разработчиком. Например, в САПР «Компас-3D» (разработка АО «АСКОН») при работе с облачными модулями загрузка одного стандартного чертежа может стоить 1 единицу, а выполнение расчёта прочности — 10 единиц.
- Динамические единицы — стоимость запроса вычисляется в реальном времени на основе сложности данных и текущей загрузки сервера. Используется в системах с адаптивным управлением ресурсами, таких как Azure Cosmos DB (организация Microsoft признана в РФ иностранным агентом, деятельность запрещена), где стоимость запроса может варьироваться в зависимости от размера документа и количества индексов.
Механизм работы и расчёт
В большинстве систем единица запросов не является физической величиной, а рассчитывается как произведение нескольких факторов. Формула может включать:
- Размер данных (в байтах или количестве объектов).
- Сложность операции (количество проходов по данным, число проверок условий).
- Время выполнения (в миллисекундах или циклах процессора).
- Коэффициент параллелизма (если запрос выполняется на нескольких ядрах).
Например, в облачной платформе для САПР средний запрос на рендеринг трёхмерной модели может быть оценён в 50 RU, а запрос на простое отображение списка элементов — в 0,5 RU. Система автоматически списывает единицы с баланса пользователя или лицензии. Если баланс исчерпан, выполнение запроса может быть отклонено или поставлено в очередь до пополнения.
Применение в различных программных продуктах
Системы автоматизированного проектирования (САПР)
В российских САПР, таких как nanoCAD (разработка ООО «Нанософт») и Компас-3D, единицы запросов используются в серверных и облачных версиях для учёта нагрузки при коллективной работе. Например, при открытии сборки из тысяч деталей система может требовать 2–5 единиц, а при выполнении массового обновления параметров — до 20 единиц. Это позволяет администраторам распределять ресурсы между пользователями.
Геоинформационные системы (ГИС)
В продуктах на базе ArcGIS (разработка Esri, США) и QGIS (открытое ПО) метрика RU применяется для тарификации запросов к пространственным данным через веб-сервисы. Например, запрос на построение буферной зоны вокруг линии длиной 100 км может стоить 3 RU, а запрос на оверлей двух слоёв с тысячами полигонов — 50 RU.
Облачные базы данных
В Azure Cosmos DB (Microsoft) единица запросов (RU/s) является основной единицей производительности. Пользователь выделяет определённое количество RU в секунду (например, 400 RU/s), и система гарантирует выполнение запросов в пределах этого лимита. Сложные запросы (например, с агрегацией данных) потребляют больше RU, чем простые.
Игровые движки и симуляторы
В игровых движках, таких как Unity и Unreal Engine, при работе с сетевыми мультиплеерными режимами или симуляциями физики единицы запросов могут использоваться для оценки нагрузки на сервер. Например, запрос на синхронизацию положения 100 объектов может стоить 1 RU, а запрос на расчёт столкновений — 10 RU.
Критика и ограничения
Использование единиц запросов как метрики вызывает ряд нареканий со стороны пользователей и разработчиков:
- Непрозрачность расчёта — во многих системах алгоритм вычисления RU не документирован или является коммерческой тайной, что затрудняет прогнозирование затрат.
- Неравномерность нагрузки — при пиковых нагрузках стоимость запроса может резко возрастать, что приводит к непредвиденным расходам для пользователей с фиксированным бюджетом.
- Привязка к вендору — метрика RU часто жёстко привязана к конкретной платформе, что создаёт «vendor lock-in» (зависимость от одного поставщика) и затрудняет миграцию на другое ПО.
- Отсутствие стандартизации — не существует единого стандарта на единицу запросов, поэтому сравнение стоимости выполнения одинаковых операций в разных системах практически невозможно.
Перспективы развития
С ростом популярности облачных вычислений и распределённых систем единицы запросов, вероятно, будут эволюционировать в сторону большей унификации. В 2023–2024 годах некоторые разработчики САПР (включая российские компании) начали предлагать модели лицензирования, где единицы запросов привязаны не к абстрактным числам, а к конкретным вычислительным ресурсам (например, 1 RU = 1 миллисекунда процессорного времени на эталонном ядре). Это повышает предсказуемость затрат. Кроме того, в открытых стандартах, таких как OGC (Open Geospatial Consortium), обсуждается введение метрик для оценки сложности пространственных запросов, что может лечь в основу будущих отраслевых норм.
Источники
- Документация Autodesk по лицензированию облачных сервисов (Autodesk Cloud Credits).
- Спецификация Microsoft Azure Cosmos DB: Request Units (RU).
- Материалы конференции «САПР и ГИС: облачные технологии» (2022, Москва).
- Статья «Метрики производительности в САПР: от ядер к запросам» (журнал «САПР и графика», №4, 2023).
- Руководство пользователя nanoCAD Cloud (ООО «Нанософт», версия 23.0).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →