> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-parallel-read-in-order-multi-part.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# настройки сеанса filesystem_cache_*

> Настройки сеанса ClickHouse в автоматически созданной группе filesystem_cache_*.

export const CloudOnlyBadge = ({supported = ['cloud', 'private', 'BYOC']}) => {
  const platforms = supported.map(platform => ({
    cloud: 'ClickHouse Cloud',
    private: 'ClickHouse Private',
    BYOC: 'BYOC'
  })[platform] || platform);
  const label = platforms.length === 1 ? platforms[0] : platforms.length === 2 ? platforms.join(' and ') : platforms.slice(0, -1).join(', ') + ', and ' + platforms[platforms.length - 1];
  return <div className="cloudBadge">
            <div className="cloudIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path fillRule="evenodd" clipRule="evenodd" d="M5.33395 12.6667H12.3739C13.6593 12.6667 14.7073 11.6187 14.7073 10.3334C14.7073 9.04804 13.6593 8.00004 12.3739 8.00004H12.0839V7.33337C12.0839 5.12671 10.2906 3.33337 8.08395 3.33337C6.09928 3.33337 4.45395 4.78537 4.14195 6.68204C2.55728 6.76271 1.29395 8.06204 1.29395 9.66671C1.29395 11.3234 2.63728 12.6667 4.29395 12.6667H5.33395Z" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
        </div>
            {'Available in ' + label}
        </div>;
};

export const VersionHistory = ({rows = []}) => {
  if (rows.length === 0) {
    return null;
  }
  const headers = ["Версия", "Значение по умолчанию", "Комментарий"];
  const border = "1px solid rgba(128, 128, 128, 0.3)";
  const cell = {
    border,
    padding: "0.25rem 0.5rem",
    textAlign: "start",
    verticalAlign: "top"
  };
  return <details className="not-prose" style={{
    border,
    borderRadius: "0.5rem",
    margin: "0.5rem 0",
    padding: "0.5rem 0.75rem",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <summary style={{
    cursor: "pointer",
    fontWeight: 600,
    opacity: 0.72
  }}>
        История версий
      </summary>
      <table style={{
    borderCollapse: "collapse",
    width: "100%",
    margin: "0.5rem 0 0"
  }}>
        <thead>
          <tr>
            {headers.map(header => <th key={header} style={{
    ...cell,
    fontWeight: 600,
    opacity: 0.72
  }}>
                {header}
              </th>)}
          </tr>
        </thead>
        <tbody>
          {rows.map((row, row_index) => <tr key={row.id ?? row_index}>
              {(row.items ?? []).map((item, item_index) => <td key={item_index} style={{
    ...cell,
    overflowWrap: "anywhere"
  }}>
                  {item?.label}
                </td>)}
            </tr>)}
        </tbody>
      </table>
    </details>;
};

export const SettingsInfoBlock = ({type, default_value, changeable_without_restart}) => {
  return <div className="not-prose" style={{
    display: "flex",
    flexWrap: "wrap",
    alignItems: "baseline",
    columnGap: "0.5rem",
    rowGap: "0.125rem",
    margin: "0.375rem 0",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <div style={{
    fontWeight: 600,
    opacity: 0.72
  }}>Тип</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{type}</div>
      <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>По умолчанию</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{default_value}</div>
      {changeable_without_restart && <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>
          Изменяется без перезапуска
        </div>}
      {changeable_without_restart && <div style={{
    overflowWrap: "anywhere"
  }}>
          {changeable_without_restart}
        </div>}
    </div>;
};

Эти настройки доступны в [system.settings](/ru/reference/system-tables/settings) и автоматически генерируются из [исходного кода](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/Settings.cpp).

## filesystem\_cache\_allow\_background\_download

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "25.11"},{"label": "1"},{"label": "Новая настройка для управления фоновыми загрузками в файловом кэше для каждого запроса."}]}]} />

Разрешает файловому кэшу ставить в очередь фоновые загрузки для данных, считываемых из удалённого хранилища. Отключите, чтобы для текущего запроса/сеанса загрузка выполнялась в основном потоке.

## filesystem\_cache\_boundary\_alignment

<SettingsInfoBlock type="UInt64" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.11"},{"label": "0"},{"label": "новая настройка"}]}]} />

Выравнивание границ файлового кэша. При чтении не с диска (например, для кэша удалённых движков таблиц / табличных функций) значение 0 означает отсутствие выравнивания. При чтении с диска (например, для таблиц семейства MergeTree на диске с кэшем) значение 0 означает, что используется `boundary_alignment` из конфигурации кэша.

## filesystem\_cache\_enable\_background\_download\_during\_fetch

<CloudOnlyBadge />

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.11"},{"label": "1"},{"label": "новая настройка"}]}]} />

Действует только в ClickHouse Cloud. Время ожидания при блокировке кэша для резервирования места в файловом кэше

## filesystem\_cache\_enable\_background\_download\_for\_metadata\_files\_in\_packed\_storage

<CloudOnlyBadge />

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.11"},{"label": "1"},{"label": "Новая настройка"}]}]} />

Действует только в ClickHouse Cloud. время ожидания при блокировке кэша для резервирования места в файловом кэше

## filesystem\_cache\_max\_download\_size

<SettingsInfoBlock type="UInt64" default_value="137438953472" />

Максимальный размер удалённого файлового кэша, который может скачать один запрос

## filesystem\_cache\_name

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.10"},{"label": ""},{"label": "Имя файлового кэша для движков таблиц без сохранения состояния или озёр данных"}]}]} />

Имя файлового кэша для движков таблиц без сохранения состояния или озёр данных

## filesystem\_cache\_prefer\_bigger\_buffer\_size

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.11"},{"label": "1"},{"label": "новая настройка"}]}]} />

Использовать больший размер буфера, если включен файловый кэш, чтобы избежать записи небольших сегментов файла, которые снижают производительность кэша. Однако включение этой настройки может увеличить использование памяти.

## filesystem\_cache\_reserve\_space\_wait\_lock\_timeout\_milliseconds

<SettingsInfoBlock type="UInt64" default_value="1000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.3"},{"label": "1000"},{"label": "Время ожидания при блокировке кэша для резервирования места в файловом кэше"}]}]} />

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

## filesystem\_cache\_segments\_batch\_size

<SettingsInfoBlock type="UInt64" default_value="20" />

Максимальный размер одного батча сегментов файла, который буфер чтения может запрашивать из кэша. Слишком низкое значение приведёт к избыточному количеству запросов к кэшу, а слишком большое может замедлить вытеснение из кэша

## filesystem\_cache\_skip\_download\_if\_exceeds\_per\_query\_cache\_write\_limit

**Псевдонимы**: `skip_download_if_exceeds_query_cache`

<SettingsInfoBlock type="Bool" default_value="1" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "24.11"},{"label": "1"},{"label": "Переименование настройки skip_download_if_exceeds_query_cache_limit"}]}]} />

Пропускать загрузку из удалённой файловой системы, если превышен размер кэша запросов

## filesystem\_cache\_verbose\_logging

<SettingsInfoBlock type="Bool" default_value="0" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.8"},{"label": "0"},{"label": "Новая настройка, управляющая сообщениями лога уровня TEST при каждом пополнении буфера чтения файлового кэша, которые ранее выводились безусловно, как только уровень логирования позволял их выводить."}]}]} />

Выводить сообщения лога уровня `TEST` при каждом пополнении буфера файлового кэша (состояние чтения, оставшийся объём данных для чтения, количество прочитанных байтов). Только для отладки: сообщения форматируются один раз для каждого чтения, поэтому включение этой настройки для запроса, выполняющего множество небольших кэшированных чтений, создаёт значительные накладные расходы на логирование. Сообщения всё равно видны только при уровне логирования `test` (см. `send_logs_level`).

## filesystem\_cache\_wait\_for\_concurrent\_download\_timeout\_milliseconds

<SettingsInfoBlock type="UInt64" default_value="1000" />

<VersionHistory rows={[{"id": "row-1","items": [{"label": "26.8"},{"label": "1000"},{"label": "Новая настройка, ограничивающая время ожидания чтением сегмента файла, загружаемого в файловый кэш параллельным запросом; при тайм-ауте чтение обходит кэш вместо бесконечного ожидания. Предыдущее значение 60000 соответствует прежнему поведению (один полный 60-секундный цикл ожидания загрузчика)."}]}]} />

Максимальное время ожидания сегмента файла, загружаемого в файловый кэш параллельным запросом. При достижении тайм-аута чтение обходит файловый кэш для этого диапазона и считывает данные напрямую из удалённого хранилища, а параллельная загрузка продолжает заполнять кэш. Значение `0` означает не ждать вовсе: немедленно обойти кэш, если нужный диапазон ещё не загружен. Уменьшение этого значения ограничивает tail latency чтений с попаданием в кэш, которые в противном случае ожидали бы загрузки другим запросом, ценой дополнительных запросов к удалённому хранилищу.
