schedule Nov 17th 12:15 PM - 01:00 PM place Sigma Hall 2 people 4 Attending

The Actor model has long been known to be great at modeling concurrent and parallel problems in a declarative, safe way. The challenge has always been the cost of this abstraction - implementing cheap message passing over a shared-nothing memory architecture while ensuring fairness is a tough ask. In this talk I shall go over how BEAM, with it's three decades of esoteric telecom engineering differs from Akka actors implemented over the JVM, arguably the most invested general purpose VM in existence today.

Along the way, we shall discover how design decisions affect performance at each step of a program's execution - from a global/per-process heap affecting GC latencies and throughput, a type system's effects at efficiency, to preemptive scheduling improving long tail latencies.

 
1 favorite thumb_down thumb_up 6 comments visibility_off  Remove from Watchlist visibility  Add to Watchlist
 

Outline/structure of the Session

This talk shall be divided into 4 phases.

  • Quick summary of Actor model (10 minutes)
    • Immutability, Message Passing and Behavior
    • Other similar approaches (CSP)
  • Erlang Actors in depth
    • What's the true cost of message passing? (5m)
      • Immutability tradeoffs
    • Latencies: Pre-emptive scheduling and Per-process GC (5m)
      • Benchmark and measure p95 latency of a concurrent app.
    • Supervision trees, Type-safety and Let-it-Crash (5m)
      • Benefits of being stateless and declarative
  • Akka Actors in depth
    • JVM shared-memory model - Perf benefits and consequences (4m)
    • Global GC - unpredictable long tail latencies (4m)
    • JVM advantages - JIT, Type System, Mixed Schedulers (5m)
      • Akka Typed
  • Conclusion/Questions (7 minutes)

Learning Outcome

This will be a deep-dive, and an attendee can expect to:

  1. Gain solid intuition into what makes BEAM truly unique at concurrency
  2. Tradeoffs of implementing the Actor model on a general purpose VM
  3. Have insights into what metrics/paradigms to consider when evaluating concurrency capabilities of a language.

Target Audience

Intermediate programmers who have worked with concurrent codebases and preferably dabbled with at least one functional language

schedule Submitted 2 months ago

Comments Subscribe to Comments

comment Comment on this Proposal
  • Francesco Cesarini
    By Francesco Cesarini  ~  2 months ago
    reply Reply

    I am also wondering if we could have 10-15 minutes of the presentation dedicated to OTP and AKKA behaviours? 

    • Pranav Rao
      By Pranav Rao  ~  2 months ago
      reply Reply

      Hello!

      In the time I had budgeted for this talk (20mins), I couldn't get into specific behaviors - ask/tell vs explicit handle_info/handle_call behaviors and the edge cases already solved for regarding actor initialization and shutdown in OTP. 

      If there's interest around this, I can come up with a 45min talk with an expanded charter.  

       

      • Naresh Jain
        By Naresh Jain  ~  1 month ago
        reply Reply

        Please update your proposal for 45 mins. Also need your video ASAP. Thanks.

        • Naresh Jain
          By Naresh Jain  ~  1 month ago
          reply Reply

          Hi Pranav, any updates? Max. we'll wait is till Sep 5th. Post that we need to finalise the program. 

    • Naresh Jain
      By Naresh Jain  ~  2 months ago
      reply Reply

      Hi Pranav,

      Thanks for your proposal. The topic sounds interesting, however I'm not sure if you can cover all of this in 20 mins. Can you please give a rough time break up of your outline?

      Also in the video, it looks like the other person is speaking most of the time. Can you suggest at what point in the video you are presenting?

      • Pranav Rao
        By Pranav Rao  ~  2 months ago
        reply Reply

        Hello Naresh, 

        It's is a tight squeeze for 20 minutes, and I do have more material I could include - including remote actors, interop with native libraries, dirty schedulers, supervisor differences.   

        I had a tight deadline while submitting the proposal, so stuck to the parts I could do immediate justice to. Let me know if I can expand the charter of the talk. 

        About the linked Fifth Elephant video, my colleague Abhijit presented the work, mostly because it was a lightning talk of 15minutes.