EPISODE · Feb 27, 2026 · 51 MIN
verschiedene Modelle von Nebenläufigkeit am Beispiel Ruby (wicmp11)
from Chaos Computer Club - recent audio-only feed · host duckling
In den Nebenläufigkeitsmodellen gibt es Threads, Prozesse, Actors (Golang-Goroutines, Ruby-Ractors), Coroutinen (Ruby Fibers, Haskell Lazy Evaluation). Außerdem gibt es Abstraktions-Libraries wie concurrent-ruby. Das kann man dann noch mit verschieden Interpretern kreuzen und erhält einen bunten Blumenstrauß von Knieschüssen. Wir wollen uns die Modelle anschauen und dann mal ganz konkret auf ein Stück Software anwenden: OpenVox Server ist in einer Mischung aus Clojure und Ruby geschrieben. Beide Sprachen laufen auf der Java-Virtual-Machine (JVM) und bringen einen Moloch von Software zum laufen. Die Frage ist, ob man eine der Sprachen sinnvoll abschütteln kann und ob man es schafft den Interpreter zu wechseln. Schwerpunkt wechselt von OpenVox auf Nebenläufigkeitskonzepte. Die Beschreibung wurde für einen anderen Talk erarbeitet: Zwischenspiel: Java-Limits "jvm pain points" - https://dev.to/betadots/scaling-puppet-infrastructure-3p2o#scaling-beyond-jruby-limits - max 32 jrubies - max 2GByte reserved code cache - memory alloc Ruby Performance - JRuby - MRI - `rvm list known` - maglev - discontinued - ree - discontinued looong ago - mruby - C integration - truffleruby - experimental Java standard foreign function interface - performance bad - rbx - dead - jruby - jruby-10 ruby3.1 - mri-3.3, mri-3.4, mri-4.0 - Gem::concurrent https://github.com/ruby-concurrency/concurrent-ruby/blob/master/lib/concurrent-ruby/concurrent/hash.rb#L17-L23 - Ractors - Gobal Interpreter Lock - no shared state - Threads - just in time compiler - jruby OpenVox Server current architectur - Clojure - jar, DSL - Clojars.org library, vgl rubygems.org - Compiler - Compile - Templates - CA-Prozess - CA-API - PuppetDB - Exported Resources - PuppetDB - API - ENC OpenVox MRI Architecture - Multi Process Bonus: - Metrics von Server - Metrics von Agent Backup: - Fibers - Enumerator.produce(0).map { _1 + 1} .filter { _1.odd? }.first(10) Licensed to the public under https://creativecommons.org/licenses/by-sa/4.0/ about this event: https://cfp.w.icmp.camp/wicmp11/talk/UVPTN9/
What this episode covers
In den Nebenläufigkeitsmodellen gibt es Threads, Prozesse, Actors (Golang-Goroutines, Ruby-Ractors), Coroutinen (Ruby Fibers, Haskell Lazy Evaluation). Außerdem gibt es Abstraktions-Libraries wie concurrent-ruby. Das kann man dann noch mit verschieden Interpretern kreuzen und erhält einen bunten Blumenstrauß von Knieschüssen. Wir wollen uns die Modelle anschauen und dann mal ganz konkret auf ein Stück Software anwenden: OpenVox Server ist in einer Mischung aus Clojure und Ruby geschrieben. Beide Sprachen laufen auf der Java-Virtual-Machine (JVM) und bringen einen Moloch von Software zum laufen. Die Frage ist, ob man eine der Sprachen sinnvoll abschütteln kann und ob man es schafft den Interpreter zu wechseln. Schwerpunkt wechselt von OpenVox auf Nebenläufigkeitskonzepte. Die Beschreibung wurde für einen anderen Talk erarbeitet: Zwischenspiel: Java-Limits "jvm pain points" - https://dev.to/betadots/scaling-puppet-infrastructure-3p2o#scaling-beyond-jruby-limits - max 32 jrubies - max 2GByte reserved code cache - memory alloc Ruby Performance - JRuby - MRI - `rvm list known` - maglev - discontinued - ree - discontinued looong ago - mruby - C integration - truffleruby - experimental Java standard foreign function interface - performance bad - rbx - dead - jruby - jruby-10 ruby3.1 - mri-3.3, mri-3.4, mri-4.0 - Gem::concurrent https://github.com/ruby-concurrency/concurrent-ruby/blob/master/lib/concurrent-ruby/concurrent/hash.rb#L17-L23 - Ractors - Gobal Interpreter Lock - no shared state - Threads - just in time compiler - jruby OpenVox Server current architectur - Clojure - jar, DSL - Clojars.org library, vgl rubygems.org - Compiler - Compile - Templates - CA-Prozess - CA-API - PuppetDB - Exported Resources - PuppetDB - API - ENC OpenVox MRI Architecture - Multi Process Bonus: - Metrics von Server - Metrics von Agent Backup: - Fibers - Enumerator.produce(0).map { _1 + 1} .filter { _1.odd? }.first(10) Licensed to the public under https://creativecommons.org/licenses/by-sa/4.0/ about this event: https://cfp.w.icmp.camp/wicmp11/talk/UVPTN9/
NOW PLAYING
verschiedene Modelle von Nebenläufigkeit am Beispiel Ruby (wicmp11)
No transcript for this episode yet
Similar Episodes
Mar 26, 2026 ·1m
Feb 8, 2026 ·4m
Jan 30, 2026 ·6m
Jan 2, 2026 ·47m