Discover this podcast and so much more

Podcasts are free to enjoy without a subscription. We also offer ebooks, audiobooks, and so much more for just $11.99/month.

Garbage Collection in Erlang vs JVM/Akka with Manuel Rubio & Dan Plyukhin

Garbage Collection in Erlang vs JVM/Akka with Manuel Rubio & Dan Plyukhin

FromElixir Wizards


Garbage Collection in Erlang vs JVM/Akka with Manuel Rubio & Dan Plyukhin

FromElixir Wizards

ratings:
Length:
44 minutes
Released:
Nov 30, 2023
Format:
Podcast episode

Description

Today on Elixir Wizards, Manuel Rubio, author of Erlang/OTP: A Concurrent World and Dan Plyukhin, creator of the UIGC Actor Garbage Collector for Akka, join host Dan Ivovich to compare notes on garbage collection in actor models.
The discussion digs into the similarities and differences of actor-based garbage collection in Erlang and Akka and introduces Dan's research on how to perform garbage collection in a distributed actor system.
Topics discussed:
Akka is akin to Erlang actors for the JVM using Scala, with similar principles like supervision trees, messages, and clustering
Erlang uses generational garbage collection and periodically copies live data to the old heap for long-lived elements
Actor GC aims to determine when an actor's memory can be reclaimed automatically rather than manually killing actors
Distributed actor GC is more challenging than object GC due to the distributed nature and relationships between actors across nodes
Challenges include reasoning about failures like dropped messages and crashed nodes
GC balance requires optimization of resource release and CPU load management
Immutability helps Erlang GC, but copying data for messages impacts performance
Research into distributed actor GC is still ongoing, with opportunities for improvement
Fault tolerance in Erlang relies on user implementation rather than low-level guarantees
Asynchronous messages in Erlang/Elixir mean references may become invalid which is similar to the distributed GC approaches in Dan's research
Idempotent messaging is recommended to handle possible duplicates from failures
Help your local researcher! Researchers encourage communication from practitioners on challenges and use cases
Links mentioned:
Erlang/OTP Volume 1: A Concurrent World by Manuel Rubio https://altenwald.com/en/book/en-erlang-i 
Scala https://www.scala-lang.org/ 
Akka Framework https://github.com/akka 
JVM (Java Virtual Machine) https://www.java.com/en/download/ 
The BEAM VM https://www.erlang.org/blog/a-brief-beam-primer/
Hadoop Framework https://hadoop.apache.org/  
Pony Programming Language https://www.ponylang.io/ 
SLSA Programming Language https://wcl.cs.rpi.edu/salsa/#:~:text=SALSA%20
Paxos Algorithm https://en.wikipedia.org/wiki/Paxos(computerscience) 
Raft library for maintaining a replicated state machine https://github.com/etcd-io/raft 
Dan's Website https://dplyukhin.github.io/ 
Dan Plyukhin on Twitter: https://twitter.com/dplyukhin 
Dan Plyukhin’s YouTube channel: https://www.youtube.com/channel/UCFG9RhkWNnUhosC3l99Y8Zw 
UIGC on GitHub https://github.com/dplyukhin/UIGC 
Manuel's Website https://altenwald.com/ 
Manuel Rubio on Twitter: https://twitter.com/MRonErlang Special Guests: Dan Plyukhin and Manuel Rubio.
Released:
Nov 30, 2023
Format:
Podcast episode

Titles in the series (100)

Elixir Wizards is an interview-style podcast for anyone interested in functional programming and the Elixir Programming Language. Hosted by SmartLogic engineers Sundi Myint, Owen Bickford, Bilal Hankins, and Dan Ivovich, this show features in-depth discussions with some of the brightest minds in the industry, discussing training and documentation in Phoenix LiveView, the evolution of programming languages, Erlang VM, and more. In the current season, we're celebrating a decade of Elixir and exploring what the next ten years hold for this powerful language. With expert insights from guests including José Valim, Hugo Baraúna, and Saša Juric, we discuss emerging trends in cyber security, cloud infrastructure, web transports, machine learning, static vs dynamic types, and what the future might hold for Elixir developers. Learn more about how SmartLogic uses Phoenix and Elixir. (https://smartlogic.io/phoenix-and-elixir?utm_source=podcast)