79 subscribers
התחל במצב לא מקוון עם האפליקציה Player FM !
פודקאסטים ששווה להאזין
בחסות


Garbage Collection in Erlang vs JVM/Akka with Manuel Rubio & Dan Plyukhin
Manage episode 386738636 series 2493466
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.
200 פרקים
Manage episode 386738636 series 2493466
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.
200 פרקים
כל הפרקים
×
1 Python in Elixir Apps with Victor Björklund 35:02

1 Explorer: Data Frames in Elixir with Chris Grainger 42:55

1 Nix for Elixir Apps with Norbert (NobbZ) Melzer 41:15

1 Set Theoretic Types in Elixir with José Valim 45:40

1 SDUI at Scale: GraphQL & Elixir at Cars.com with Zack Kayser 49:18

1 Rustler: Bridging Elixir and Rust with Sonny Scroggin 48:58

1 Nx and Machine Learning in Elixir with Sean Moriarity 44:21

1 LangChain: LLM Integration for Elixir Apps with Mark Ericksen 38:18

1 Blue Heron: Bluetooth Low Energy (BLE) for Elixir & Nerves with Connor Rigby 46:16

1 Zigler: Zig NIFs for Elixir with Isaac Yonemoto 43:00

1 Building an Open Vehicle Control System using Elixir and Nerves with Marc, Thibault, and Loïc 54:19

1 Creating Horizon: Deploy Elixir Phoenix Apps on FreeBSD with Jim Freeze 44:48

1 Telemetry & Observability for Elixir Apps at Cars.com with Zack Kayser & Ethan Gunderson 42:39

1 Scaling the Daylite Apple-Native CRM Using Elixir with AJ 52:21

1 Creating the Castmagic AI-Powered Content Workflow Platform with Justin Tormey 35:40

1 Creating the Standd AI-Native Due Diligence Platform with Stephen Solka 48:44

1 Creating the WebAuthn Components Library for Phoenix LiveView Apps with Owen Bickford 57:32

1 Creating a Terrestrial Telescope using Nerves & LiveView with Lucas Sifoni 49:56

1 Creating a Local-First Offline-Enabled LiveView PWA with Tony Dang 48:18

1 Creating VintageCell: Nerves, PCBs, and GenStateMachine with Bryan Green 28:58

1 Creating the Igniter Code Generation Framework with Zach Daniel 52:55

1 Elixir Wizards X Thinking Elixir ElixirConf 2024 Hype-isode 59:50

1 "The Past is Your Teacher" with Alicia Brindisi and Bri LaVorgna 32:56

1 "So You've Been Hired" with Emma Whamond and Micaela Cunha 46:06

1 "From Inspiration to Execution" with Camber Griffin 45:03

1 "DevOps: From Code to Cloud" with Dan Ivovich 43:43

1 "Printing is Ugly" with Joel Meador and Charles Suggs 47:03

1 "Keeping it Fresh" with Bilal Hankins and Anna Dorigo 36:00

1 "Saga of a Gnarly Report" with Owen and Dan 50:21

1 "Whose Tailwind is it Anyway?" with Ava Slivkoff 48:17

1 "You've Got a Job to Do" with Joel Meador 44:26

1 "Discovery Discoveries" with Alicia Brindisi and Bri LaVorgna 43:26

1 "Testing 1, 2, 3" with Joel Meador and Charles Suggs 45:40

1 Creating a Language: Elixir vs. Roc with José Valim and Richard Feldman (Elixir Wizards X Software Unscripted Podcast) 1:09:04

1 Package Management in Elixir vs. JavaScript with Wojtek Mach & Amal Hussein 54:06

1 Communities in Tech with Camille Clayton & Scott Tolinski 48:19

1 Actor Model and Concurrent Processing in Elixir vs. Clojure and Ruby with Xiang Ji & Nathan Hessler 47:57

1 Static Code Analysis in Elixir vs. Ruby with René Föhring & Marc-André Lafortune 46:02

1 Web Development Frameworks: Elixir and Phoenix vs. Ruby on Rails with Owen Bickford & Dan Ivovich 41:41

1 Garbage Collection in Erlang vs JVM/Akka with Manuel Rubio & Dan Plyukhin 44:08

1 Machine Learning in Elixir vs. Python, SQL, and Matlab with Katelynn Burns & Alexis Carpenter 31:19

1 Embedded Systems in Elixir vs. C, C++, and Java with Connor Rigby & Taylor Barto 46:30

1 ECS / Game Development with Elixir vs. Python, JavaScript, React with Dorian Iacobescu & Daniel Luu 41:08

1 Learning a Language: Elixir vs. JavaScript with Yohana Tesfazgi & Wes Bos 42:14

1 HTTP Requests in Elixir vs. JavaScript with Yordis Prieto & Stephen Chudleigh 50:29
ברוכים הבאים אל Player FM!
Player FM סורק את האינטרנט עבור פודקאסטים באיכות גבוהה בשבילכם כדי שתהנו מהם כרגע. זה יישום הפודקאסט הטוב ביותר והוא עובד על אנדרואיד, iPhone ואינטרנט. הירשמו לסנכרון מנויים במכשירים שונים.