dec-0055

Vista generada de dec-0055: Priority híbrida acotada

ImplementadoSin versión del tren todavía· generada desde docs/decisions/dec-0055-priority-hibrida-acotada.md
track/docsdec-0124track/docs:DC10

Vista generada desde docs/decisions/dec-0055-priority-hibrida-acotada.md. No se edita a mano: bun run docs:gen la regenera y bun run docs:check falla si difiere. El estado aquí es el del model: si discrepa con otra página, manda el model.

CampoValor
EstadoLOCKED (migrado de un rNN por gate-3: el fichero no declara estado)
Referencia legadar40-L4
Ficherodocs/decisions/dec-0055-priority-hibrida-acotada.md

Enmendado o sustituido por: r46, r60, r61

Por qué importa (del frontmatter del ADR):

native/zig/media-core/scheduler/priority_queue.zig (docstring '@informedBy docs/decisions/r40... § M4.priority' línea 43), usado en moqt_subscriber.zig, local_file.zig, priority_queue_test.zig, integration_test.zig. Además r61 §D4 (2026-07-15) reformula 'speculative work lower-priority que committed' citando explícitamente 'r40 §4 purpose-class'.

Nodos del roadmap que lo citan en refs: ninguno.

Páginas de la documentación que lo citan: ninguna todavía.

Texto del ADR

Leído de docs/decisions/dec-0055-priority-hibrida-acotada.md, el fichero canónico.

Priority híbrida acotada

Priority híbrida acotada: top-N en estructura O(1) + overflow barato (ADAPT from MoQ PriorityQueue)

Por qué pasa gate-3

  • Hard-to-reverse: Requiere estructura top-N acotada O(1) + overflow en BinaryHeap colapsado. Cambiar a una priority queue estándar (Vec/heap sin cap) alteraría la complejidad del scheduler caliente. La decisión de que purpose-class domina siempre está codificada en la lógica de scheduling.
  • Surprising sin contexto: Sin el ADR, un ingeniero podría implementar priority solo por deadline/sequence (estándar) y NO entender por qué purpose-class (playback > seek > prefetch > background) domina. La distinción entre hot path (top-N in-flight, O(1)) vs overflow (barato) NO es obvia sin el contexto del harvest.
  • Trade-off real: Alternativa rechazada implícita: priority queue estándar sin cap (crece con backlog, O(log n) inserts). Trade-off: complejidad de two-tier structure (top-N fixed + overflow) vs simplicidad de single heap. La evidencia de MoQ demostró que top-N nunca crece con backlog ilimitado.

Procedencia

Split de docs/decisions/r40-scheduler-cache-mechanics-harvest-2026-06-30.md (lock r40-L4) durante PASO 7 (2026-07-16). Ver el fichero padre para el contexto completo del pack original.