Elixir Wizards

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


Listen Later

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_(computer_science) 
    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://m.youtube.com/@dplyukhin
    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.

    ...more
    View all episodesView all episodes
    Download on the App Store

    Elixir WizardsBy SmartLogic LLC

    • 4.9
    • 4.9
    • 4.9
    • 4.9
    • 4.9

    4.9

    22 ratings


    More shows like Elixir Wizards

    View all
    Software Engineering Radio - the podcast for professional software developers by se-radio@computer.org

    Software Engineering Radio - the podcast for professional software developers

    262 Listeners

    The Changelog: Software Development, Open Source by Changelog Media

    The Changelog: Software Development, Open Source

    285 Listeners

    Startups For the Rest of Us by Rob Walling

    Startups For the Rest of Us

    694 Listeners

    Software Engineering Daily by Software Engineering Daily

    Software Engineering Daily

    630 Listeners

    Syntax - Tasty Web Development Treats by Wes Bos & Scott Tolinski - Full Stack JavaScript Web Developers

    Syntax - Tasty Web Development Treats

    985 Listeners

    REWORK by 37signals

    REWORK

    212 Listeners

    CoRecursive: Coding Stories by Adam Gordon Bell - Software Developer

    CoRecursive: Coding Stories

    185 Listeners

    Elixir Mix by Charles M Wood

    Elixir Mix

    13 Listeners

    The Stack Overflow Podcast by The Stack Overflow Podcast

    The Stack Overflow Podcast

    63 Listeners

    Thinking Elixir Podcast by ThinkingElixir.com

    Thinking Elixir Podcast

    31 Listeners

    Beam Radio by Lars Wikman

    Beam Radio

    11 Listeners

    Software Unscripted by Richard Feldman

    Software Unscripted

    26 Listeners

    Oxide and Friends by Oxide Computer Company

    Oxide and Friends

    47 Listeners

    Elixir Mentor by Jacob Luetzow

    Elixir Mentor

    2 Listeners

    Elixir Friends by German Velasco

    Elixir Friends

    0 Listeners