Episode Details

Back to Episodes

verschiedene Modelle von Nebenläufigkeit am Beispiel Ruby (wicmp11)

Published 8 months, 2 weeks ago
Description
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/
Listen Now

Love PodBriefly?

If you like Podbriefly.com, please consider donating to support the ongoing development.

Support Us