This specification is maintained by the AgentRules Working Group. Have enhancements or want to claim maintainership?Submit Specification →
backendcritical PriorityID: postgres-17-direct-io-streaming-quarantine

Postgres 17 Direct I/O and Streaming Buffer Quarantine Standard

Enforces architectural boundaries for Postgres 17 streaming reads and asynchronous vector pipelines to prevent OS page cache double buffering. Quarantines bulk analytical scans and high-dimensional vector traversals into dedicated memory ring buffers, preventing the eviction of critical OLTP pages from shared_buffers.

Prohibited Anti-Pattern: Unbounded Vector and Analytical Scans Evicting OLTP shared_buffers via OS Page Cache Double Buffering

Export Ready-to-Drop Configuration

Select format below to copy code or download file directly.

---
description: Postgres 17 Direct I/O and Streaming Buffer Quarantine Standard - Enforces architectural boundaries for Postgres 17 streaming reads and asynchronous vector pipelines to prevent OS page cache double buffering. Quarantines bulk analytical scans and high-dimensional vector traversals into dedicated memory ring buffers, preventing the eviction of critical OLTP pages from shared_buffers.
globs: src/infrastructure/database/**/*.ts, src/repositories/**/*.ts, migrations/**/*.sql, src/config/database.ts
alwaysApply: true
verified_by: "agentrules.org"
license: "CC-BY-4.0"
source: "https://agentrules.org/rules/postgres-17-direct-io-streaming-quarantine"
---

# Postgres 17 Direct I/O and Streaming Buffer Quarantine Standard

> **Severity**: CRITICAL | **Category**: backend
> **Anti-Pattern Warning**: Unbounded Vector and Analytical Scans Evicting OLTP shared_buffers via OS Page Cache Double Buffering

## System Constraints
You are a Principal Database Architect and Rules Author enforcing the Postgres 17 Direct I/O Streaming Buffer Quarantine Standard. Mandate that bulk vector index scans (HNSW/IVFFlat) and analytical streaming reads bypass kernel page cache duplication and execute inside deterministic memory boundaries to guarantee zero-degradation OLTP latency SLAs.

## Strict Guidelines
- Engineers MUST configure session-level buffer quarantine settings (`set_local`) before executing vector similarity searches or bulk partition scans.
- Engineers MUST NOT allow unconstrained sequential read queries to flood the global `shared_buffers` without bounded ring buffer allocation.
- Code SHOULD verify that Postgres 17 instances enable `io_direct = 'data'` where storage infrastructure supports asynchronous direct I/O to avoid double buffering in the Linux VFS cache.
- Services MUST route vector operations and heavy analytical transactions to quarantined connection pools with restricted `work_mem` and explicit streaming read limits.
- Components NEVER execute raw cosine/L2 distance scans exceeding the quarantine threshold without verifying that indexed probes leverage streaming buffer reuse.

## Bad vs Good Implementations
### Unbounded Vector Scan Causing Buffer Pollution vs. Quarantined Direct Streaming Pipeline

#### Bad Antipattern (AI Common Hallucination)
> **Why it fails**: Executing vector scans against a generic connection pool without enforcing buffer usage boundaries allows high-dimensional vector page reads to pollute `shared_buffers`. In Postgres 17, failing to quarantine large streaming reads causes concurrent OLTP cache misses and dual-caching between Linux VFS and PostgreSQL.
```typescript
import { Pool } from 'pg';

export async function searchVectorEmbeddings(pool: Pool, queryEmbedding: number[], limit: number) {
  // Anti-pattern: Executes across default pool without isolating the streaming buffer.
  // Can trigger full table scan in shared_buffers, displacing OLTP cache lines
  // and forcing kernel double-buffering across Linux page cache.
  const client = await pool.connect();
  try {
    const res = await client.query(
      `SELECT id, content, embedding <=> $1::vector AS distance
       FROM document_embeddings
       ORDER BY distance ASC
       LIMIT $2`,
      [JSON.stringify(queryEmbedding), limit]
    );
    return res.rows;
  } finally {
    client.release();
  }
}
```

#### Production Standard (Correct)
> **Standard**: The good pattern utilizes a dedicated connection pool with a read-only transaction that strictly scopes memory consumption using `SET LOCAL`. It disables unindexed sequential fallbacks and pins vector graph operations to a quarantined allocation boundary, preventing buffer pollution in Postgres 17.
```typescript
import { PoolClient } from 'pg';
import { quarantinedVectorPool } from '../database/pools';

interface VectorResult {
  id: string;
  content: string;
  distance: number;
}

export async function searchVectorEmbeddingsQuarantined(
  embedding: number[],
  limit: number
): Promise<VectorResult[]> {
  // Acquire connection from dedicated quarantined analytical/vector pool
  const client: PoolClient = await quarantinedVectorPool.connect();
  try {
    // Postgres 17 buffer quarantine & streaming read configuration
    await client.query('BEGIN READ ONLY;');
    await client.query(`
      SET LOCAL hnsw.ef_search = 100;
      SET LOCAL work_mem = '32MB';
      -- Restrict parallel workers to prevent shared_buffer thrashing
      SET LOCAL max_parallel_workers_per_gather = 2;
      -- Enforce index scan and bound memory to dedicated ring buffers
      SET LOCAL enable_seqscan = OFF;
    `);

    const result = await client.query<VectorResult>(
      `SELECT id, content, (embedding <=> $1::vector) AS distance
       FROM document_embeddings
       ORDER BY distance ASC
       LIMIT $2`,
      [JSON.stringify(embedding), limit]
    );

    await client.query('COMMIT;');
    return result.rows;
  } catch (error) {
    await client.query('ROLLBACK;').catch(() => {});
    throw error;
  } finally {
    client.release();
  }
}
```

Recommended MCP Servers (mcp-serverlist.com)

Equip agent with system tools to verify code for this stack.

Recommended Agent Skills (askills.dev)

Ready-to-use executable skill functions tailored to this stack.

Architectural Specification & Invariant Rationale

Architectural Invariant Design: Postgres 17 Direct I/O and Streaming Buffer Quarantine Standard

Postgres 17 Direct I/O and Streaming Buffer Quarantine Standard defines an industrial-grade behavioral standard for backend engineering. Enforces architectural boundaries for Postgres 17 streaming reads and asynchronous vector pipelines to prevent OS page cache double buffering. Quarantines bulk analytical scans and high-dimensional vector traversals into dedicated memory ring buffers, preventing the eviction of critical OLTP pages from shared_buffers. Modern software architectures require strict adherence to deterministic patterns to guarantee high availability, maintainability, and zero security vulnerabilities.

Framework Paradigm Shift & Drift MechanicsLLMs are trained on millions of open-source repositories containing outdated code, legacy idioms, and unpatched antipatterns. When coding assistants generate implementations for this stack, they default to common statistical tokens: Unbounded Vector and Analytical Scans Evicting OLTP shared_buffers via OS Page Cache Double Buffering Without an explicit system instruction file, developers spend hours debugging silent failures.
Failure Modes & Production Blast Radius

Hazard Analysis: What Breaks Without This Rule

The following failure modes have been cataloged from hundreds of hours of production code reviews where AI assistants produced non-compliant implementations:

Failure ModeAI Symptom (The Anti-Pattern)SeverityProduction Impact & Remedy
AI Hallucination & Deprecation DriftUnbounded Vector and Analytical Scans Evicting OLTP shared_buffers via OS Page Cache Double BufferingCritical
Violating this industrial standard introduces regression bugs, security risks, and unexpected runtime failures in production.
Enforce explicit behavioral system directives across all AI coding assistants in your repository.
Silent Architecture InconsistencyAI assistants produce mixed paradigms across files, creating fragmented codebase conventions.Medium
Increases cognitive load during code reviews and leads to maintenance debt across engineering teams.
Pin project conventions in .cursor/rules, CLAUDE.md, and AGENTS.md so all team agents follow identical guardrails.
Architectural Directives in Detail

Step-by-Step Production Directives

Each rule constraint below is injected into the AI agent's system prompt to establish deterministic boundaries:

1

Engineers MUST configure session-level buffer quarantine settings (`set_local`) before executing vector similarity searches or bulk partition scans.

Engineers MUST configure session-level buffer quarantine settings (`set_local`) before executing vector similarity searches or bulk partition scans.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
2

Engineers MUST NOT allow unconstrained sequential read queries to flood the global `shared_buffers` without bounded ring buffer allocation.

Engineers MUST NOT allow unconstrained sequential read queries to flood the global `shared_buffers` without bounded ring buffer allocation.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
3

Code SHOULD verify that Postgres 17 instances enable `io_direct = 'data'` where storage infrastructure supports asynchronous direct I/O to avoid double buffering in the Linux VFS cache.

Code SHOULD verify that Postgres 17 instances enable `io_direct = 'data'` where storage infrastructure supports asynchronous direct I/O to avoid double buffering in the Linux VFS cache.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
4

Services MUST route vector operations and heavy analytical transactions to quarantined connection pools with restricted `work_mem` and explicit streaming read limits.

Services MUST route vector operations and heavy analytical transactions to quarantined connection pools with restricted `work_mem` and explicit streaming read limits.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
5

Components NEVER execute raw cosine/L2 distance scans exceeding the quarantine threshold without verifying that indexed probes leverage streaming buffer reuse.

Components NEVER execute raw cosine/L2 distance scans exceeding the quarantine threshold without verifying that indexed probes leverage streaming buffer reuse.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
Technical Questions & Answers

Frequently Asked Technical Questions

Common questions developers face when configuring AI coding assistants for this stack:

Q:Why is Postgres 17 Direct I/O and Streaming Buffer Quarantine Standard critical for AI coding assistants?

Enforces architectural boundaries for Postgres 17 streaming reads and asynchronous vector pipelines to prevent OS page cache double buffering. Quarantines bulk analytical scans and high-dimensional vector traversals into dedicated memory ring buffers, preventing the eviction of critical OLTP pages from shared_buffers. Without explicit behavioral boundaries, AI coding assistants (Cursor, Claude Code, Windsurf, Codex) rely on training data averages, which frequently produce deprecated, inefficient, or vulnerable code patterns.

Q:How does adopting this rule prevent AI hallucinations?

This rule explicitly declares what the AI must avoid (Unbounded Vector and Analytical Scans Evicting OLTP shared_buffers via OS Page Cache Double Buffering) and prescribes verified positive examples. Grounding the LLM with negative and positive pairs eliminates guesswork.

Q:Which AI coding environments are supported?

This specification is multi-platform compatible: Cursor (.cursor/rules/*.mdc & .cursorrules), Anthropic Claude Code (CLAUDE.md), Windsurf (.windsurfrules), Codex / Cline (AGENTS.md), and GitHub Copilot (.github/copilot-instructions.md).

Q:Can I combine this rule with other technology stacks?

Yes. Use the Interactive Stack Builder or download an Agent Pack to merge this rule with other frontend, backend, database, security, and DevOps rules without syntax collision.

Open Specification · CC BY 4.0·Free for Personal, Team & Commercial In-Repo Use

Citation & Open Source Attribution Guidelines

This specification is licensed under Creative Commons Attribution 4.0 International (CC BY 4.0). You are completely free to adapt and share this rule in your workspace. If citing, including in public AI benchmark datasets, or redistributing, attribution to AgentRules.org is required.

1 Rule in Stack

Postgres