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