LockFileAddtodatadirRead wait event (IO) — PostgreSQL

PostgreSQL IO wait event LockFileAddtodatadirRead: Waiting for a read while adding a line to the data directory lock file.

Summary

LockFileAddtodatadirRead is a PostgreSQL IO wait event. The official server documentation describes it as: “Waiting for a read while adding a line to the data directory lock file.” (verbatim from PostgreSQL’s wait_event_names.txt catalog).

Classification

  • wait_event: LockFileAddtodatadirRead
  • wait_event_type: IO
  • Internal enum: WAIT_EVENT_LOCK_FILE_ADDTODATADIR_READ
  • Reported in: pg_stat_activity

What the IO class indicates

(Paraphrased explanation.) The process is waiting for an I/O operation (read, write, or fsync) to complete. Sustained IO waits often indicate storage pressure or cold cache.

How to observe it

(Illustrative query — not from the catalog.) You can see which sessions are currently reporting this wait event in the cumulative statistics view:

SELECT pid, state, wait_event_type, wait_event, query
FROM pg_stat_activity
WHERE wait_event_type = 'IO'
  AND wait_event = 'LockFileAddtodatadirRead';

Version applicability

Confirmed present in PostgreSQL major version(s): 12, 13, 14, 15, 16, 17, 18, 19 (verified against each release’s server source).

This is a long-standing wait event: it is present at least as far back as PostgreSQL 12 (the oldest release checked here) and very likely predates it.

Naming note: in PostgreSQL 16 and earlier this event was reported as LockFileAddToDataDirRead. PostgreSQL 17 normalized wait-event spellings (via the generated wait_event_names.txt), so it now appears as LockFileAddtodatadirRead.

The machine-readable wait_event_names.txt catalog exists from PostgreSQL 17 onward; presence in PostgreSQL 12–16 was verified directly from the wait-event, lock, and lightweight-lock definitions in those releases’ source code.

References

  • PostgreSQL documentation — Wait Events
  • PostgreSQL source — src/backend/utils/activity/wait_event_names.txt