ArcFlow
Company
Managed Services
Markets
  • News
  • LOG IN
  • GET STARTED

OZ brings Visual Intelligence to physical venues, a managed edge layer that lets real-world environments see, understand, and act in real time.

Talk to us

ArcFlow

  • World Models
  • Sensors

Managed Services

  • OZ VI Venue 1
  • Case Studies

Markets

  • Sports
  • Broadcasting
  • Robotics

Company

  • About
  • Technology
  • Careers
  • Contact

Ready to see it live?

Talk to the OZ team about deploying at your venues, from a single pilot match to a full regional rollout.

Schedule a deployment review

© 2026 OZ. All rights reserved.

LinkedIn
ArcFlow Docs
Start
  • Quickstart
  • Installation
  • Bindings
  • Platforms
  • Get Started
  • Cookbook
Concepts
  • World Model
  • Graph Model
  • Evidence Model
  • Observations
  • Confidence & Provenance
  • Proof Artifacts & Gates
  • SQL vs GQL
  • Graph Patterns
  • Parameters
  • Query Results
  • Persistence & WAL
  • Snapshot-Pinned Reads
  • Error Handling
  • Execution Models
  • Causal Edges
  • Adapter Discipline
  • Time Decay
  • Layers
  • 1. World Store
  • 1a. World Store · Smart Reader
  • 2. Perception Lake
  • 3. World Graph
  • 4. Query Engine
  • 5. Live Surface
  • 6. Event Bus
  • 7. Behavior Engine
  • 8. Algorithm Library
  • Virtual Computed Columns
  • Threading Model
  • Typed ID Contract
WorldCypher
  • Overview
  • Execution Options
  • Statements
  • MATCH
  • WHERE
  • RETURN
  • OPTIONAL MATCH
  • CREATE
  • SET
  • MERGE
  • DELETE
  • REMOVE
  • Composition
  • WITH
  • UNION
  • UNWIND
  • CASE
  • Schema
  • Schema Overview
  • Indexes
  • Constraints
  • Functions
  • Built-in Functions
  • Aggregations
  • Procedures
  • Shortest Path
  • EXPLAIN
  • PROFILE
  • Temporal Queriesfacet
  • Spatial Queriesfacet
  • Algorithmsfacet
  • Triggers
Capabilities
  • Live Queries
  • Vector Search
  • Trusted RAG
  • Spatial Knowledge
  • Temporal
  • Behavior Graphs
  • Graph Algorithms
  • Skills
  • CREATE SKILL
  • PROCESS NODE
  • REPROCESS EDGES
  • Sync
  • Programs
  • GPU Acceleration
  • Agent-Native
  • MCP Server
  • Event Sourcing
  • Intent Relay
  • Event Bus
Use Cases
  • Agent Tooling
  • Trusted RAG
  • Knowledge Management
  • Behavior Graphs
  • Autonomous Systems
  • Physical AI
  • Digital Twins
  • Robotics & Perception
  • Sports Analytics
  • Grounded Neural Objects
  • Fraud Detection
Walkthroughs
    Guides
  • Agent Integration
  • Building a World Model
  • Modeling a Social Graph
  • Build a RAG Pipeline
  • Using Skills
  • Behavior Graphs
  • Swarm & Multi-Agent
  • Fleet Coordination
  • Migrate from Cypher / Neo4j
  • From SQL to GQL
  • Filesystem Workspace
  • Data Quality
  • Code Intelligence
  • Scale Patterns
  • v0.7 → v0.8 Lakehouse Fast-Path
  • Tutorials
  • Knowledge Graph
  • Entity Linking
  • Vector Search
  • Graph Algorithms
  • Recipes
  • CRUD
  • Multi-MATCH
  • MERGE (Upsert)
  • Full-Text Search
  • Batch Projection
  • Multi-Source Observation
  • Sports Analytics
Operations
  • CLI
  • REPL Commands
  • Snapshot & Restore
  • Filesystem Projection
  • Plugin Management
  • Agent Governance
  • Server Modes & PG Wire
  • Persistence (ops)
  • Import & Export
  • Deployment
  • Deployment Modes
  • Daemon (UDS)
  • Why not Docker
  • Architecture
  • Engine Architecture
  • Cloud Architecture
  • Sync Protocol (Deep Dive)
  • World Graph Substrate (Preview)
Reference
  • TypeScript API
  • Glossary
  • Naming & Domain Map
  • Data Types
  • Operators
  • Error Codes
  • GQL Reference
  • Known Issues
  • Versioning
  • Licensing
  • Conformance
  • GQL Conformance
  • openCypher TCK
  • Extension Regressions
GQL Reference
    Conformance
  • Conformance Dashboard
  • openCypher TCK Results
  • Extension Regressions
  • Features
  • MATCH Basic
  • CREATE Nodes Edges
  • SET REMOVE Properties
  • DELETE Detach DELETE
  • RETURN WITH WHERE
  • Order BY Limit Skip
  • Order BY Nulls First Last
  • UNWIND
  • Aggregate Functions
  • OPTIONAL MATCH
  • Variable Length Paths
  • Label OR AND NOT Expressions
  • Label Wildcard
  • Quantified Path Sugar
  • Path Modes Walk Trail Simple Acyclic
  • Shortest Path Variants
  • IS Labeled Predicate
  • Element ID Function
  • IS Type Predicate
  • Binary Literals
  • Line Comments Solidus
  • Line Comments Minus
  • GQLSTATUS Result Codes
  • GQL Error Code Mapping
  • Transaction Control Syntax
  • SET Session
  • Conditional Execution WHEN THEN ELSE
  • RETURN NEXT Pipeline
  • Primary Key Constraint
  • Unique Constraint
  • Deterministic MERGE Via PK
  • Undirected Edge MATCH
  • Cast Type Conversion
  • GQL Directories
  • Multiple Labels Per Node
  • GQL Flagger
  • NEXT Linear Composition
  • Cardinality Function
  • INT64 BIGINT Type Names
  • FLOAT64 Double Type Names
  • Log10 Log2 Functions
  • Trim Leading Trailing Both
  • FILTER Clause
  • LET Statement
  • Group BY Explicit
  • EXCEPT SET Operations
  • INTERSECT SET Operations
  • ALL Different Predicate
  • Same Predicate
  • Property Exists Function
  • Path Variable Binding
  • USE Graph Clause
  • FOR IN List
  • Typed Temporal Literals
  • Session SET Value Params
  • Typed List Annotations
  • arcflow.cosine() function
  • arcflow.embed() function
  • arcflow.similar() procedure
  • arcflow.graphrag() procedure
  • ArcFlow Extensions
  • LIVE Queries
  • Triggered Write-Back Views
  • Evidence Algebra
  • Relationship Skills
  • AI Function Namespace
  • Graph Embedding Algorithms
  • ASOF JOIN
  • Durable Workflows
  • Incremental Z-Set Engine
  • GPU GraphBLAS
  • Triggers
  • HNSW Vector Index
  • Extensions Moat

World Store · Smart Reader

The Smart Reader's Phase B surface is live. Footer-only count, column-projection scans, predicate pushdown across row groups, lazy stats cache, the parquet + safetensors planners, the mmap / GPU-direct / Arrow-IPC transports, the lane-explicit router, mission-tier eviction priority via ReadProvenance, and deadline-over-completeness query mode (PAT-0053, arcflow.QueryOptions(deadline_ms=N) reachable from Python with result.transport_outcome returning truncated / complete / None) are all shipped substrate. The page describes that surface as-is.

Two design dimensions remain target-state, named here for completeness:

  • Per-range integrity anchor (PAT-0052). Closes the GPU-direct DMA path's checksum gap (Lane::CudaGds bypasses CPU-side hashing). Not customer-observable today.
  • Graph-resolved deduplication — a substrate primitive that turns the catalog into a storage resolution oracle (not just a byte-level content-addressed map). Operator-approved as a planning dossier (GRD-A1..A6); the engine team is opening kanban/planning/26-05-17-graph-resolved-dedup/ on the next /loop tick. This is a separate concept from the Smart Reader's read contract; named here for cross-reference.

The Smart Reader sits inside the World Store — it is the substrate's read surface for format-aware workloads. The general substrate stores bytes; the Smart Reader knows what shape those bytes have (parquet, safetensors, arrow, …) and turns Cypher access patterns into the smallest possible byte fetch.

The contract is simple: the reader emits a typed ReadPlan; the transport executes it. Reader and transport are independently testable, and the plan is inspectable by EXPLAIN.

The two halves#

HalfOwnsLives at
ReaderFormat-aware planning — footer parsing, row-group skip, column projection, coalescingworldstore::serve::reader::*
TransportLane-explicit execution — mmap, GPU-direct (cuFile + GDS), Arrow IPC (shared-memory)worldstore::serve::transport::*

A ReadPlan is the typed contract between them. Plans describe what bytes to fetch and in what order; they never describe how to fetch (that's the transport's job).

What the reader plans#

The reader returns a ReadPlan with:

  • Range fetches — file-by-file (offset, length, column_id) triples for contiguous or coalesced byte ranges.
  • Coalesce threshold — a hint to the transport ("these ranges are within N bytes of each other; fetch as one"), computed from the format's index layout.
  • Result schema — the typed columns the result will carry, resolved against the projection.
  • Provenance — snapshot, label, catalog reference. Feeds the Memory Governor's mission-tier eviction priority.

Footer-only fast path#

When the projection is empty (a pure count(*)), the plan has zero range fetches. The result is computed from per-row-group num_rows summed across the parquet footer. No column bytes leave object storage.

import arcflow, os
os.environ["OZ_LAKE_ROOT"] = "/path/to/lake/root"
 
db = arcflow.ArcFlow("/path/to/workspace")
db.register_virtual_partition(
    label="Frame",
    partition="lake://nfl/tracks/{season}/{week}",
)
result = db.execute("MATCH (f:Frame) RETURN count(f) AS n")
# {'n': 311000000}  ← reads from parquet footers; no column scan

— under the virtual label backed by lake://nfl/tracks/{season}/{week}, the Cypher pattern resolves to a footer scan against the matching parquet files. No row data is read; the answer is computed from manifest + footer metadata alone. Cost is bounded by footer parse time (~tens of µs per file), so a 311-million-frame count returns in sub-second wall time against the full partition.

Column-pruned scan#

When the projection names specific columns, only those column chunks become range fetches. Untouched columns never leave object storage.

MATCH (f:Frame) WHERE f.season = 2024 RETURN f.x, f.y

— pulls only the x and y column chunks for row groups whose season stats overlap 2024. Predicate-pushdown against row-group min/max stats prunes most row groups before any data reads.

What the transport does#

Three transports, three lanes. The router picks one based on the execution context and probe results; never silently downgrades.

TransportWhen chosenWhat the result carries
mmap (default)CPU lane; default for typed-entity queriesmmap'd region; result columns reference slices of the mapping (lifetime tied to the mapping)
gpu_directGPU lane requested AND CUDA + cuFile + GDS-capable NVMe all presentDevice-side buffers via cuFileRead (NVMe → HBM, zero CPU mediation)
arrow_ipcRouted to an inference sidecar (separate crash domain per ANTI-0020)Shared-memory Arrow IPC handle delivered via UDS

Why mmap is the correct default (not lazy)#

  • Page cache is shared across processes — engine and any loader process reading the same file share kernel pages, no daemon coordination required.
  • madvise(WILLNEED) is the right prefetch primitive — the kernel schedules async reads optimally for the underlying device.
  • NUMA-aware on modern Linux and macOS.
  • Userland caches compete with the page cache for the same memory — net effect is lower aggregate hit rate, higher memory pressure.

The Smart Reader's mmap transport does not maintain a userland LRU / LFU cache. Reinventing the page cache is an explicit anti-pattern.

Why GPU-direct matters#

When the projection lands in a GPU consumer — model inference, vector index probe, spatial GPU kernel — cuFileRead reads bytes from NVMe directly into device memory, bypassing host RAM entirely. The Smart Reader's router probes at startup for CUDA driver + cuFile library + GDS-capable NVMe; if all three are present and the lane request is GPU, the transport is gpu_direct. Otherwise the request errors with a structured RouterError::GpuNotAvailable naming which probe failed — never a silent fallback to mmap.

Mission-tier eviction priority#

The plan's provenance feeds the Memory Governor:

  • Reader emits ReadProvenance { mission_tier, snapshot_id, label }.
  • Transport admits bytes through the Memory Governor.
  • On admission pressure, eviction order within a residency class is predicted > inferred > observed — predicted entities (cheapest to recompute) evict first; observed entities (irreplaceable) evict last.

No DSL, no per-path quotas. The typed entity layer carries the priority into the substrate via the plan.

Inspectability#

Plans are inspectable. An EXPLAIN over a virtual-label query dumps the plan:

ReadPlan {
  ranges: 0,                          // footer-only fast path
  result_schema: Int64 "count(*)",
  provenance: {
    mission_tier: observed,
    snapshot_id: "snap_2026_05_16_…",
    label: "Frame",
  },
  transport: CpuMmap,
}

Plans are also testable without I/O — unit tests construct synthetic plans and assert reader output without touching the filesystem. Reader and transport concerns are independently testable.

What the Smart Reader does NOT do#

  • It does not own the catalog. Partition resolution lives in worldstore::catalog.
  • It does not own bytes-on-disk. Storage primitives live in worldstore::io::*.
  • It does not own typed-entity reasoning. That's the World Graph.
  • It does not maintain a userland cache. The OS page cache is the cache.
  • It does not silently downgrade lanes. GPU-direct unavailable returns an explicit error; the caller decides.

See also#

  • World Store — the substrate the Smart Reader sits inside.
  • World Graph — the typed entity layer that consumes plan results.
  • Query Engine — the layer that calls the Smart Reader for virtual-label patterns.
  • Algorithm Library — GPU-resident algorithms that drive gpu_direct plans.
← Previous1. World StoreNext →2. Perception Lake