TDB Documentation portal logo
Помощь
Обновлена 30 июля 2026 г. в 16:49

Системные спейсы

Системные спейсы – это внутренние служебные спейсы Tarantool DB, которые хранят метаинформацию о конфигурации кластера, существующих спейсах и индексах, пользователях, правах доступа, а также настройках репликации и шардирования. В отличие от названий пользовательских спейсов, названия системных спейсов начинаются с символа подчёркивания, например _space.

Каждый системный спейс имеет одноимённое представление (system space view) с префиксом _v, например, _vspace для _space. Представление системного спейса – это копия системного спейса с доступом только для чтения. Представления показывают только те кортежи, на чтение которых у текущего пользователя есть права, в то время как сами системные спейсы содержат все кортежи без фильтрации.

Зачем прикладному пользователю доступ к системным спейсам

В Tarantool DB все вызовы модулей CRUD и vshard выполняются от имени пользователя, который их инициировал. Когда пользователь выполняет через роутер метод CRUD (например, crud.get() или crud.replace()), роутер проксирует запрос на экземпляры хранилища. На стороне хранилища этот запрос выполняется от имени того же пользователя.

Для обработки запроса на хранилище модулям CRUD и vshard необходим доступ к следующим системным спейсам:

  • _bucket – модуль vshard обращается к этому спейсу для определения принадлежности сегмента к текущему экземпляру. Например, при выполнении crud.get() роутер определяет, на каком хранилище находятся данные, хранилище проверяет, что сегмент ему принадлежит. Доступ к _bucket также требуется при ребалансировке сегментов;

  • _cooler – модуль cooler использует этот спейс для хранения метаданных о настроенных задачах архивации. Если в кластере используется архивация данных через модуль cooler, пользователю необходим доступ на чтение к этому спейсу;

  • _ddl_sharding_key – модуль CRUD использует этот спейс для получения информации о ключах шардирования спейсов. Доступ необходим для корректной маршрутизации запросов между роутерами и узлами хранилища.

Без доступа к перечисленным спейсам на экземплярах хранилища пользователь получит ошибку вида:

Read access to space '_space_name' is denied for user 'username'

Список системных спейсов

К системным спейсам в Tarantool DB относятся:

  • _bucket – карта сегментов (bucket map), используемая встроенным модулем шардирования vshard;
  • _ck_constraint – проверочные ограничения (check constraints). Проверочные ограничения – это ограничения на значения определенных полей или целых кортежей, которые задаются пользователем (например, невозможность задать для поля age отрицательное число). Информация про проверочные ограничения приведена в документации платформы Tarantool, в разделе Ограничения;
  • _cluster – список наборов реплик;
  • _collation – список видов сортировки;
  • _cooler – метаданные архивации данных. Доступно с версии TDB 3.0.0. Спейс используется встроенным модулем cooler;
  • _ddl_sharding_func – список функций шардирования. Спейс используется встроенным модулем vshard;
  • _ddl_sharding_key – список ключей шардирования спейсов (полей, по которым нужно шардировать спейс). Спейс используется встроенным модулем vshard;
  • _func – список функций, созданных с помощью box.schema.func.create(). Представление _vfunc показывает только функции, доступные текущему пользователю;
  • _index – список всех индексов. Представление _vindex показывает только индексы, доступные текущему пользователю;
  • _priv – список прав доступа. Представление _vpriv показывает только права, доступные текущему пользователю;
  • _schema – информация о схеме данных экземпляра;
  • _sequence – список последовательностей. Спейс содержит персистентную информацию, определенную с помощью box.schema.sequence.create() или sequence_object:alter(). Спейсу соответствует представление _vsequence;
  • _sequence_data – текущие значения последовательностей;
  • _session_settings – настройки текущего сеанса;
  • _space – список всех спейсов, включая пользовательские и системные. Представление _vspace показывает только спейсы, доступные текущему пользователю;
  • _space_sequence – связи между спейсами и последовательностями. Представление _vspace_sequence показывает только связи, доступные текущему пользователю;
  • _user – список пользователей, ролей и хэшей паролей. Представление _vuser показывает только пользователей, доступных текущему пользователю.