PostgreSQL 13 - WAL - дата последнего обновления файла не меняется

Я использую последнюю версию PostgreSQL в Windows и пытаюсь понять внутренние механизмы файлов WAL.

Я хочу протестировать следующий сценарий.

  1. Посмотрите на активный файл wal в файловой системе
SELECT pg_walfile_name(pg_current_wal_lsn());

Возвращает 000000010000000000000007

2. Get - время последней записи

ls 000000010000000000000007

Возврат

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       10/12/2020     13:05       16777216 000000010000000000000007

3. Вставить запись в таблицу базы данных

INSERT INTO person(name)
VALUES('Christopher')

4. Проверьте еще раз время последней записи активного файла.

ls

Возврат

    Répertoire : C:\Program Files\PostgreSQL\13\data\pg_wal

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----       27/11/2020     07:45                archive_status
-a----       10/12/2020     11:05       16777216 000000010000000000000007
-a----       06/12/2020     21:15       16777216 000000010000000000000008

WAL не обновлялся! Почему ?

Ни один файл в pg_wal не обновлялся!

ОБНОВЛЕНИЕ
Благодаря вашим ответам я понял. Винда, кажется, причина!

Если я проверю дату файла с помощью

ls
    Répertoire : C:\Program Files\PostgreSQL\13\data\pg_wal

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----       27/11/2020     07:45                archive_status
-a----       10/12/2020     11:05       16777216 000000010000000000000007
-a----       06/12/2020     21:15       16777216 000000010000000000000008

НО следующее показывает подходящее время!

ls 000000010000000000000007

Возврат

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       10/12/2020     13:05       16777216 000000010000000000000007

Как в мире?


person Laurent GRENIER    schedule 10.12.2020    source источник
comment
'последний файл в каталоге pg_wal'. Последний по алфавиту или последний по времени?   -  person jjanes    schedule 10.12.2020
comment
это последний по времени   -  person Laurent GRENIER    schedule 10.12.2020
comment
Файловая система может быть настроена так, чтобы не обновлять метку времени при каждой записи. Обновление отметок времени при каждой записи удваивает объем записи, который необходимо сделать.   -  person jjanes    schedule 10.12.2020
comment
@jjanes нет, файл обновлен правильно, но причиной является команда ls в Windows, которая возвращает два разных результата в зависимости от того, просматриваете ли вы всю папку или файл конкретно.   -  person Laurent GRENIER    schedule 10.12.2020


Ответы (1)


Активный сегмент WAL будет обновлен. Вы можете получить его имя с помощью

SELECT pg_walfile_name(pg_current_wal_lsn());

Остальные сегменты WAL либо старые, либо зарезервированы на будущее.

Нет причин для изменения метки времени модификации каталога, если один из файлов в ней изменяется.

person Laurenz Albe    schedule 10.12.2020
comment
Спасибо за Ваш ответ. В соответствии с вашим запросом, я смог получить активный wal и конкретно его проверить, как я описал в моем отредактированном ответе. - person Laurent GRENIER; 10.12.2020