lardon3d/docs/architecture/foundation_review.md
fy59 b84f860d86 refactor(core): freeze global maintenance baseline
Complete the A-to-Z Lardon3D maintenance and coherence pass.

Generalize host resource policy, remove the global CPU12 ceiling, preserve
host CPU/RAM reserves, scale Task capabilities through the Resource Governor,
and validate deterministic parallel GV execution.

Migrate Project DB to v23 with data-driven camera, lens, optical configuration
and calibration profiles, including manual lenses without EXIF.

Integrate safe optional LARDON SSD swap/scratch control with Governor and F10
drain/safe-to-unplug semantics.

Refactor the ncurses TUI into a runtime observatory with durable progress,
elapsed time, smoothed ETA, throughput, resource telemetry, Governor state,
optics workflow, colors and compact/no-color fallbacks.

Reconcile Queue lifetime, persistence, concurrency, comments, tests,
README, AGENTS and canonical documentation.

GLOBAL_MAINTENANCE_AUDIT=PASS/FROZEN
2026-09-01 08:00:47 +02:00

2.8 KiB

Revue historique des fondations Lardon3D

Ce document conserve l'état de la revue de fondation à son époque. Les limites « absence de persistance », tombstones et tickets recommandés ci-dessous ne décrivent plus l'état courant. Pour l'architecture active, voir Task, Queue, Resource Governor et le registre de maintenance.

Objectif

Documenter la revue technique de la phase de fondation : task, task_queue, hardware_profile, resource_snapshot, resource_governor, réservations et intégration au scheduler.

Composants évalués

Task

  • Cycle de vie complet
  • États et transitions
  • Pause/reprise coopérative
  • Annulation coopérative
  • Checkpoints
  • Estimations de ressources

Task Queue

  • File FIFO
  • Sélection de la première tâche admissible
  • Backpressure
  • Bornage du pending_count
  • Comportement WAIT

Hardware Profile

  • Détection des capacités matérielles
  • CPU, RAM, GPU/VRAM

Resource Snapshot

  • Capture instantanée des ressources
  • RAM libre, charge CPU, VRAM

Resource Governor

  • Arbitrage centralisé
  • Calcul de lots adaptatifs
  • Réservations opaques
  • Historique borné

Intégration Scheduler ↔ Governor

  • Cycle d'exécution
  • Admission
  • Gestion des pauses
  • Séquences adaptatives

Invariants garantis

  1. Intégrité des estimations (immuables)
  2. Obligation de réservation active avant démarrage
  3. Cohérence du contrat de lot transmis au callback
  4. Gestion sécurisée de WAIT et des variables de condition
  5. Libération unique des réservations
  6. Protection mutex unique du gouverneur
  7. Séparation stricte des rôles (scheduler ne décide pas des ressources)

Limites connues lors de cette revue historique

  • File à worker unique avec FIFO strict
  • Absence de notification automatique de libération externe
  • Accumulation de tombstones de réservations
  • Absence de persistance
  • Absence de DAG
  • Absence de priorités
  • Absence de pools de workers multiples

Risques à surveiller

  • Ordre de destruction des objets
  • Concurrence sur la libération des réservations
  • Récursivité/blocage par un callback détruisant sa propre tâche
  • Bornage de la mémoire
  • Indépendance de la publication atomique

Feuille de route historique (désormais supersédée)

Prochains tickets recommandés

  1. Sélectionner une tâche admissible sans blocage par la tête de file ✓
  2. Introduire le DAG et les dépendances
  3. Persister les tâches et checkpoints de reprise
  4. Orchestrer et mesurer les séquences adaptatives
  5. Ajouter les pools bornés CPU, IO et GPU
  6. Migrer l'import vers le scheduler générique
  7. Ajouter la publication live validée, puis le viewer Vulkan séparé

Validation

  • Tests unitaires passés
  • ASan/UBSan passés
  • TSan passé
  • git diff --check propre

Statut : ARCHIVE D'ÉVIDENCE HISTORIQUE