Настройка кеша метаданных для Ozone на уровне S3 Gateway

Ozone S3 Gateway (S3G) — это компонент Ozone, который предоставляет интерфейс для доступа к данным Ozone, совместимый с S3. Он получает S3-запросы от клиентов и преобразует их в операции с Ozone Manager (OM) и хранилищем данных Ozone.

S3G представляет собой stateless-компонент и не сохраняет данные локально. Без оптимизации, каждый запрос метаданных требует RPC-вызова к Ozone Manager для получения необходимых метаданных. Поэтому операции HEAD Object, GET Object и LIST Objects могут генерировать большое количество запросов метаданных к OM.

Такое поведение может значительно увеличивать нагрузку на OM в следующих сценариях:

  • Загрузка объектов. Клиенты S3 обычно отправляют запрос HEAD Object перед запросом GET Object. В результате выполняется дополнительный запрос метаданных.

  • Параллельная загрузка. При запросе многопоточных клиентов загрузка объектов может разделяться на несколько запросов GET Object по диапазону. При этом метаданные одного и того же объекта могут запрашиваться несколько раз, что приводит к нескольким вызовам OM.getKeyInfo.

По мере увеличения числа одновременных S3-запросов увеличивается и число запросов метаданных. В этом случае Ozone Manager может стать узким местом S3-нагрузок с высокой частотой запросов.

Кеш метаданных объектов в S3G

S3 Gateway в ADH может кешировать метаданные Ozone с помощью OM-клиента с поддержкой кеширования метаданных. Кеш представляет собой локальный кеш Caffeine, отдельный для каждого пользователя и экземпляра S3G.

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

  1. Если существует актуальная запись кеша и ее возраст не превышает установленный срок действия (TTL), S3G возвращает кешированные метаданные без отправки RPC-запроса к OM.

  2. Если запись в кеше отсутствует или истек срок ее действия, S3G запрашивает метаданные у OM.

  3. После получения метаданных S3G сохраняет значение в кеше и возвращает ответ клиенту.

Это позволяет сократить количество повторных запросов метаданных к OM и повысить производительность S3-запросов.

Чтобы понизить вероятность того, что запрос в кеш возвращает устаревшие метаданные, S3G удаляет записи из кеша в следующих случаях:

  • Истекает TTL записи кеша.

  • В S3G объект был изменен, например, он был удален или переименован.

    ПРИМЕЧАНИЕ
    Удаление записи из кеша происходит только при изменении объекта в S3G. Если объект изменяется другим клиентом, например клиентом Ozone CLI, соответствующая запись в кеше S3G не удаляется. Метаданные, измененные таким образом, становятся доступны S3G только после истечения срока действия записи кеша.

Чтобы включить кеширование метаданных в S3G, присвойте параметру ozone.s3g.object.cache.enabled значение true.

В настоящее время кешируются метаданные следующих объектов:

  • S3-тома (volume).

  • Бакеты (bucket).

  • Ключи, включая обычные и расширенные.

Параметры конфигурации

Кеш метаданных S3G можно настроить с помощью следующих параметров:

Параметры компонента Ozone S3G
ozone-site.xml
Параметр Описание Значение по умолчанию

ozone.s3g.object.cache.enabled

Включает кеширование объектов на уровне S3G

false

ozone.s3g.object.cache.metrics.enabled

Активирует метрики кеша в S3G

true

ozone.s3g.object.cache.volume.size

Максимальное количество записей в кеше томов S3G

10

ozone.s3g.object.cache.volume.ttl.ms

Время жизни записей в кеше томов S3G в миллисекундах

3000

ozone.s3g.object.cache.bucket.size

Максимальное количество записей в кеше бакетов S3G

100

ozone.s3g.object.cache.bucket.ttl.ms

Время жизни записей в кеше бакетов S3G в миллисекундах

3000

ozone.s3g.object.cache.key.size

Максимальное количество записей в кеше ключей S3G

1000

ozone.s3g.object.cache.key.ttl.ms

Время жизни записей в кеше ключей S3G в миллисекундах

3000

Ограничения

При включенном кешировании не гарантирована строгая согласованность метаданных, поскольку объект может быть изменен извне в течение периода действия TTL, в то время как S3G продолжит возвращать устаревшее значение из кеша.

Источник данных для мониторинга ADH

Кеширование метаданных предоставляет метрики, которые можно использовать для мониторинга работы кеша и оценки его влияния на S3G и OM.

Метрики можно визуализировать в системе мониторинга ADH с помощью специальных дашбордов. Для всех кешей объектов S3 (s3VolumeCache, s3BucketCache, s3HeadKeyCache, s3KeyInfoCache) доступны следующие метрики.

Имя метрики Описание

hitCount

Количество удачных обращений к кешу

hitRate

Процент успешных обращений

missCount

Количество неудачных обращений к кешу

loadSuccessCount

Количество успешных загрузок из кеша

loadFailureCount

Количество неудачных загрузок из кеша

loadFailureRate

Процент неудачных загрузок из кеша

evictionCount

Количество удалений из кеша

averageLoadPenalty

Средняя задержка при загрузке в наносекундах

Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней