Модуль dictionary¶
Модуль dictionary предоставляет методы для работы со словарями и используется на узлах
с включенной технологической ролью dictionary.roles.router или dictionary.roles.storage.
Router API¶
После применения конфигурации кластера в узлах с ролью dictionary.roles.router становится доступна
глобальная переменная dictionary_router, содержащая необходимые для работы методы.
dictionary_router.get(entity_name, key)¶
Получить значение элемента с одного из доступных узлов со словарем.
Параметры:
entity_name(string) – название словаря. Если названия нет, укажите пустую строку;key(string) – идентификатор элемента словаря.
Возвращает:
тип
any– данные элемента словаря (value) по идентификатору, илиnil, если данных с таким идентификатором нет.
dictionary_router.set(entity_name, key, value)¶
Сохранить значение элемента в один из доступных узлов со словарем.
Параметры:
entity_name(string) – название словаря. Если названия нет, укажите пустую строку;key(string) – идентификатор элемента словаря;value(any) – данные элемента словаря.
Возвращает:
тип
boolean–true, если операция выполнена успешно;тип
string– информация об ошибке, если она произошла, иначеnil.
dictionary_router.del(entity_name, key)¶
Удалить значение элемента в одном из доступных узлов со словарем.
Параметры:
entity_name(string) – название словаря. Если названия нет, укажите пустую строку;key(string) – идентификатор элемента словаря.
Возвращает:
тип
boolean–true, если операция выполнена успешно;тип
string– информация об ошибке, если она произошла, иначеnil.
dictionary_router.get_keys(entity_name[, opt])¶
Доступно с версии 1.1.0.
Получить все ключи для словаря.
Параметры:
entity_name(string) – название словаря;opt(table) – дополнительные параметры вызова:limit(number) – максимальное число ключей в ответе. Значение по умолчанию: 5000;yield(number) – количество ключей до следующей передачи управления. Значение по умолчанию: 1000.
Возвращает:
тип
table– список ключей.
dictionary_router.get_entity(entity_name[, opt])¶
Доступно с версии 1.1.0.
Получить все данные словаря.
Параметры:
entity_name(string) – название словаря;opt(table) – дополнительные параметры вызова:limit(number) – максимальное число ключей в ответе. Значение по умолчанию: 1000;yield(number) – количество ключей до следующей передачи управления. Значение по умолчанию: 1000.
Возвращает:
тип
table– ассоциативный массивключ-значение;тип
number– число прочитанных строк.
dictionary_router.get_batch(entity_name, key_list)¶
Доступно с версии 1.1.0.
Получить значения словаря по списку ключей.
Параметры:
entity_name(string) – название словаря;key(table) – cписок ключей.
Возвращает:
тип
table– ассоциативный массивключ-значение.
dictionary_router.set_batch(entity_name, key_value)¶
Доступно с версии 1.1.0.
Задать пачку значений словаря.
Параметры:
entity_name(string) – название словаря;key_value(table) – ассоциативный массивключ-значение.
Возвращает:
тип
bool–true, если операция выполнена успешно.
dictionary_router.del_entity(entity_name)¶
Доступно с версии 1.1.0.
Удалить все значения словаря.
Параметры:
entity_name(string) – название словаря.
Возвращает:
тип
bool–true, если операция выполнена успешно.
dictionary_router.check_consistency()¶
Для каждого узла со словарем вычислить хэш всех его данных. При вычислении учитываются поля:
название словаря (
entity_name);ключ (
key);значение (
value).
Для успешного выполнения все узлы со словарями должны быть рабочие (healthy).
Параметры: нет
Возвращает:
result(table) – структура, содержащая поля:consistency(bool) –true, если на всех узлах одинаковый хэш данных словаря;hash_map(table) – справочная таблица, которая содержит перечень узлов со словарями и их хэши данных;
error_message(string) – информация об ошибке, если она произошла, иначеnil.
Storage API¶
После применения конфигурации кластера в узлах с ролью dictionary.roles.storage становится доступна
глобальная переменная dictionary, содержащая необходимые для работы методы.
dictionary.get(entity_name, key)¶
Получить значение элемента словаря.
Параметры:
entity_name(string) – название словаря. Если названия нет, укажите пустую строку;key(string) – идентификатор элемента словаря.
Возвращает:
данные элемента словаря (
value) по идентификатору;nil, если данных с таким идентификатором нет.
Возвращаемый тип: any
dictionary.set(entity_name, key, value)¶
Сохранить значение элемента словаря.
Параметры:
entity_name(string) – название словаря. Если названия нет, укажите пустую строку;key(string) – идентификатор элемента словаря;value(any) – данные элемента словаря.
Возвращает:
ok(boolean) –true, если операция выполнена успешно;error_message(string) – информация об ошибке, если она произошла, иначеnil.
dictionary.del(entity_name, key)¶
Удалить значение элемента словаря.
Параметры:
entity_name(string) – название словаря. Если названия нет, укажите пустую строку;key(string) – идентификатор элемента словаря.
Возвращает:
ok(boolean) –true, если операция выполнена успешно;error_message(string) – информация об ошибке, если она произошла, иначеnil.
dictionary.get_keys(entity_name[, opt])¶
Доступно с версии 1.1.0.
Получить все ключи для словаря.
Параметры:
entity_name(string) – название словаря;opt(table) – дополнительные параметры вызова:limit(number) – максимальное число ключей в ответе. Значение по умолчанию: 5000;yield(number) – количество ключей до следующей передачи управления. Значение по умолчанию: 1000.
Возвращает:
тип
table– список ключей.
dictionary.get_entity(entity_name[, opt])¶
Доступно с версии 1.1.0.
Получить все данные словаря.
Параметры:
entity_name(string) – название словаря;opt(table) – дополнительные параметры вызова:limit(number) – максимальное число ключей в ответе. Значение по умолчанию: 1000;yield(number) – количество ключей до следующей передачи управления. Значение по умолчанию: 1000.
Возвращает:
тип
table– ассоциативный массивключ-значение;тип
number– число прочитанных строк.
dictionary.get_batch(entity_name, key_list)¶
Доступно с версии 1.1.0.
Получить значения словаря по списку ключей.
Параметры:
entity_name(string) – название словаря;key(table) – список ключей.
Возвращает:
тип
table– ассоциативный массивключ-значение.
dictionary.set_batch(entity_name, key_value)¶
Доступно с версии 1.1.0.
Установить пачку значений словаря.
Параметры:
entity_name(string) – название словаря;key_value(table) – ассоциативный массивключ-значение.
Возвращает:
тип
bool–true, если операция выполнена успешно.
dictionary.del_entity(entity_name)¶
Удалить все значения словаря.
Параметры:
entity_name(string) – название словаря.
Возвращает:
тип
bool–true, если операция выполнена успешно.
dictionary.try_sync()¶
Запустить принудительно обмен данными с соседними экземплярами. При работе со словарями попытка обмена данными с другими узлами происходит в двух случаях:
при выполнении операции сохранения (
set()) или удаления (del()) не в транзакции;по таймеру, периодичность которого регулируется опцией конфигурации dictionary.worker_sleep_in_second.
Если операции set() или del() выполняются в транзакции, библиотека не начинает синхронизацию с другими узлами.
В этом случае в логике клиентской функции можно принудительно вызвать обмен данными после окончания транзакции,
чтобы не дожидаться срабатывания таймера.
Параметры: нет
Возвращает:
ok(boolean) –true, если операция выполнена успешно;error_message(string) – информация об ошибке, если она произошла, иначеnil.