Erlang Factory 2016

Keynote: Phoenix and Elm – Making the Web Functional

Chris McCord and Evan Czaplicki

  • The Road to 2 Million Websocket Connections in Phoenix
    • -    ^local = :ets.new(local, [:bag, :named_table, :public,
      +    ^local = :ets.new(local, [:duplicate_bag, :named_table, :public,
    • Justin's broadcast sharding with a pool of pubsub servers and ets tables. So we sharded by subscriber pid into a pool of pubsub servers each managing their own ets table per shard.

CutEr: A Concolic Testing Tool for Erlang Programs

Kostis Sagonas

  • Normally it's used as shell-based tool, but it cab also be called from code.
  • Receives as input from a single function to an entire module.
  • Generates automatically a set of test inputs to the given function(s) and returns which function(s) fails with which inputs.
  • GitHub: https://github.com/aggelgian/cuter

High Performance Erlang - Pitfalls and Solutions (Machine Zone)

  • Deep look at some of the basic mechanisms of Erlang (shared data structures such as maps and ETS tables) and show how they behave under high load and parallelism.
  • For shared and/or large amount of data, definitely ETS tables.
  • To deal with write-locks (specially in update operations), implement Sharding on top of ETS tables.

When ETS Is Too Slow

Mark Allen – Basho

  • Riak KV uses Caching internally
  • The explore different alternatives to ETS tables
  • Conclusions
    • "ETS tables are hard to beat"
    • Sharding on top of ETS tables

Erlang Factory 2016

By cabol

Erlang Factory 2016

  • 298