Операционная система ЗОСРВ «Нейтрино» > Руководство разработчика > Интерфейсы различных подсистем > Устойчивая служба публикации/подписки (PPS) > Общие сведения > Сохранение данных в ПЗУ



Сохранение данных в ПЗУ

Использование ПЗУ службой PPS

Во время выполнения служба PPS хранит объекты в памяти:


Note:
  • С помощью службы PPS можно создавать объекты, которые редко или никогда не публикуются и не имеют подписчиков, но должны размещаться в постоянном хранилище.
  • Под завершением работы понимается корректный останов серверного процесса службы PPS, который можно выполнять с помощью сигналов SIGTERM, SIGINT и SIGQUIT. Поскольку другие сигналы (например SIGKILL, SIGSEGV или SIGABRT) приводят к нештатному завершению процесса, их использование не обеспечивает сохранность данных службы PPS.

Содержание статьи:

Постоянное хранилище
Ограничения файловой системы постоянного хранилища
Сохранение объектов
Загрузка объектов

Постоянное хранилище

Служба PPS поддерживает постоянное хранилище, которое должно находиться в надежной файловой системе. К таким файловым системам относятся:

Для хранения объекта на специальном устройстве (например, в энергонезависимой памяти небольшого объема, которая не поддерживает файловую систему) пользователь может создать собственного клиента и зарегистрировать его как подписчика этого объекта. Служба PPS будет уведомлять клиента о каждом изменении объекта, а клиент сможет сохранять его в энергонезависимой памяти в реальном времени.

Ограничения файловой системы постоянного хранилища

Каталог с объектами постоянного хранилища включает в себя такую же иерархическую структуру каталогов, как и корневой каталог службы PPS. Таким образом, максимальная длина путевых и файловых имен, а также количество уровней вложенности каталогов в постоянном хранилище зависят от используемой файловой системы.

Например, сервер NFS в составе ЗОСРВ «Нейтрино» поддерживает до 15 уровней вложенности каталогов. Указанное ограничение также распространяется на службу PPS, которая использует эту файловую систему.

Сохранение объектов

Cлужба PPS записывает все измененные объекты в постоянное хранилище при завершении работы. Кроме того, можно сохранять объект PPS в любой момент времени, вызывая для него функцию fsync().

При записи данных в постоянное хранилище служба PPS помещает каждый объект в отдельный файл в иерархии каталогов, которая является отображением иерархии дерева объектов PPS. Например, в конфигурации по умолчанию объект /pps/foo/bar хранится в файле /var>pps/foo/bar.

По умолчанию служба PPS использует каталог /var/pps, но позволяет изменять его с помощью параметра -p.


Note:
  • Чтобы служба PPS не сохраняла конкретные объекты или атрибуты, можно соответствующим образом настраивать их спецификаторы. Дополнительную информацию см. в главе Параметры и спецификаторы.
  • Для поддержки нескольких языков следует использовать во всех строках кодировку UTF-8, которая позволяет кодировать расширенные наборы символов.

Загрузка объектов

При запуске служба PPS немедленно формирует иерархию каталогов из кодированных файловых имен в постоянном хранилище. В конфигурации по умолчанию PPS откладывает загрузку объектов в каталогах до первого обращения к одному из файлов (с помощью вызова open() для объекта PPS или readdir() для каталога PPS).

Можно изменять конфигурацию службы PPS с помощью параметра -l так, чтобы при запуске она загружала имена каталогов и объектов без содержимого объектов либо загружала каталоги и объекты вместе с содержимым объектов. Дополнительную информацию см. на странице pps.




Предыдущий раздел: Устойчивая служба публикации/подписки (PPS)