Skip to content

Releases: ORNL/oscar

Release list

Release v3.11.0

Choose a tag to compare

@github-actions github-actions released this 03 Nov 02:49
v3.11.0
84fb3e1

3.11.0 2026-11-02

Release overview

OSCAR 3.11.0 is the first official release published under Oak Ridge National Laboratory's github.com/ORNL organization (ORNL/oscar), re-architected for multi-year, 24/7 operation across up to 50 concurrent radiation portal monitor (RPM) and RTSP camera lanes on Ubuntu Server 24.04 x86-64 and Windows 11 x86-64 (with Docker Desktop and WSL 2).

Release artifacts — which file to download

Release Asset Target Audience & Use Case
oscar-3.11.0.zip (+ .sha256) Connected Ubuntu Server 24.04 or Windows 11 installations and upgrades. Includes Docker Compose definitions, Linux/Windows administration CLIs (oscar.sh / oscar.bat), configure-windows-host.ps1, application build context, all Markdown documentation, and all four localized PDF operator manuals.
oscar-3.11.0-windows-x86_64-offline-full.zip (+ .sha256) Air-gapped / offline Windows 11 installations where Docker Desktop or WSL 2 is not yet installed. Bundles pinned Docker Desktop 4.87.0 and WSL 2.7.3 installers, pre-built container images (oscar:3.11.0, oscar-postgis:3.11.0, nginxinc/nginx-unprivileged:1.28.1-alpine), administration scripts, and all Markdown/PDF documentation.
oscar-3.11.0-windows-x86_64-offline-images.zip (+ .sha256) Air-gapped / offline Windows 11 installations or upgrades where compatible Docker Desktop and WSL 2 are already running. Contains the pre-built container image archive, administration scripts, and documentation without the Windows prerequisite installers.
OSCAR-3.11.0-Administrator-Operator-Manual-{en,es,fr,el}.pdf Standalone localized Administrator and Operator Manuals in English (en), Español (es), Français (fr), and Ελληνικά (el).
oscar-v3.11.0-source.zip (+ .sha256) Complete tracked source archive including all submodules (osh-core, osh-addons, osh-oakridge-modules, and oscar-viewer; GitHub's auto-generated source archive omits submodules).
OSCAR-3.11.0-SHA256SUMS.txt Master SHA-256 checksum manifest covering all release ZIPs and localized PDF manuals.

Start here — documentation for new and current users

Why the major architectural changes in 3.11.0 were implemented

  • Why PARQUET_PRIMARY Tiered Storage Replaced Single-Table PostgreSQL Detector Retention: At a 50-lane site emitting 1 Hz gamma/neutron telemetry, single-table PostgreSQL JSONB retention generated millions of rows per day and severe MVCC dead-tuple bloat, autovacuum I/O contention, WAL amplification, and multi-gigabyte B-tree/GIN index fragmentation during row-by-row retention deletes. Staging immutable detector streams into 30-minute LOGGED PostgreSQL partitions (osg_*), sealing parity-verified windows into Zstandard-compressed Apache Parquet files (~10–15x smaller on disk), retiring whole stage partitions via O(1) NO INHERIT + DROP TABLE, and federating hot + cold reads through embedded DuckDB eliminates DELETE bloat, keeps PostgreSQL compact (~9–12 GiB), speeds up multi-day historical CQL/report scans ~19x, and preserves 100% OpenSensorHub IObsSystemDatabase / ConSys / CQL2 compatibility.
  • Why Five-Frame JPEG Media Replaced Long-Term Raw MP4 Storage: Retaining full H.264 MP4 clips across 50 cameras consumes terabytes rapidly, while video re-encoding was CPU-heavy and brittle on 1-second occupancies. Asynchronous extraction of five deterministic baseline sRGB JPEGs (FIRST, QUARTER, MIDDLE, THREE_QUARTERS, LAST) with a 24-hour MP4 rollback grace and 30-day secondary-frame pruning (keeping MIDDLE / frame-03.jpg long-term) preserves visual evidence at a small fraction of MP4 disk usage.
  • Why Direct Pre-Parse Daily-File Journaling Was Added: Reconstructing vendor daily CSVs from parsed database rows risked losing raw messages across restarts or parser errors and caused startup spikes on 50-lane systems. DailyFileJournalService records CRC32C-framed vendor messages on disk before parsing and decouples historical day rendering from live ingestion.
  • Why Schema-v2 Single-Snapshot Backup (archive_mode=off) Replaced Continuous External WAL Archiving: Continuous external WAL archiving risked silent disk exhaustion on unattended servers if backup storage disconnected, while multiple local cold-tier copies multiplied storage cost. Opt-in single mode uses streamed pg_basebackup, pg_verifybackup, HMAC-SHA-256 inventory verification, and an atomic CURRENT pointer for self-contained same-host or cross-host recovery.
  • Why Operational Views, Batched Status of Health, Event UUID/QR & Serialized Statistics Were Built: Multi-gate sites needed URL-scoped workstation views (/view/<slug>) so gate consoles subscribe only to assigned lanes; bounded 30-second health batching and keyframe-gated HLS recovery so 50-lane dashboards and cameras never stall browsers; single-code QR export/import for air-gapped alarm handoff; and serialized National Statistics refreshes so archive scans cannot overlap.
  • Why Windows 11 Modern Standby (S0 Low Power Idle) & Pre-Login Docker Hardening Were Added: Endurance testing on Windows 11 Modern Standby hardware proved that AC display blanking (VIDEOIDLE > 0) triggers Kernel-Power 506 idle suspension even when STANDBYIDLE = 0, and that Docker Desktop does not start after an unattended power-loss reboot until interactive login. configure-windows-host.ps1 (prepare-host / host-check) now enforces VIDEOIDLE = 0 on Modern Standby systems, registers OSCAR-DockerDesktop-BootStart (LogonType=S4U) for pre-login container startup, caps WSL 2 memory via .wslconfig, verifies NIC IPv4 stability, and enables bugcheck auto-reboot across 20 automated checks.

Storage-profile changes and rollout

  • Introduce the OscarTieredObsSystemDatabase storage profile with sequential observation IDs, batched writes, compact short-lived stage ownership, and a versioned PostgreSQL archive catalog
  • Initialize new PostgreSQL clusters with data checksums, WAL compression, I/O timing, and pg_stat_statements, while explicitly keeping archive_mode=off and omitting any external WAL bind; an existing cluster is not recreated by upgrade
  • Preserve an upgraded deployment's saved config.json and database, so a pre-3.11.0 deployment is not silently converted to the complete 3.11.0 storage profile
  • Require a fresh 3.11.0 database and standard configuration for the current test systems and new...
Read more