Zum Inhalt springen

Process Host

Process Hosts verwalten die Ausführung von Lua-Prozessen mit einem Work-Stealing-Scheduler.

Jeder Host plant Prozesse unabhängig voneinander. Die Last wird nicht automatisch zwischen Hosts verteilt.
KindBeschreibung
process.hostProzessausführungs-Host mit Scheduler
- name: main_host
kind: process.host
host:
workers: 8
queue_size: 1024
local_queue_size: 256
lifecycle:
auto_start: true
FeldTypStandardBeschreibung
workersintNumCPUWorker-Goroutinen
queue_sizeint1024Globale Queue-Kapazität
local_queue_sizeint256Pro-Worker lokale Deque-Größe

Der Scheduler verwendet Work-Stealing: Jeder Worker hat eine lokale Deque, und untätige Worker stehlen aus der globalen Queue oder von anderen Workern. Dies balanciert die Last automatisch aus.

  • Workers führen Prozesse nebenläufig aus
  • Globale Queue hält ausstehende Prozesse wenn alle Worker beschäftigt sind
  • Lokale Queues reduzieren Konflikte indem sie Arbeit nah bei den Workern halten

Process Hosts führen Einträge dieser Typen aus:

KindBeschreibung
process.luaQuellbasierter Lua-Prozess
process.lua.bcVorkompilierter Lua-Bytecode
process.wasmWebAssembly-Prozess (experimentell)

Prozesse laufen unabhängig mit eigenem Kontext, kommunizieren über Nachrichten und werden für Fehlertoleranz überwacht.