Kazoo – ETS is Magic

I work on a product called Kazoo.  Kazoo is written in erlang.  Lately at work, those of us on the Platform team have been having a conversation about a language feature known as ETS (erlang term storage). The end of the conversation pretty much always concludes that

Erlang ETS == Magical

I have been down the road of finding a magical language feature (not in erlang) for a specific use case, only later to find out that when I switch the conditions of the use case, it totally and completely falls apart.  With that in mind, this weekend I did a little reading / researching / googling to find the source of the magic.

Thanks for Erlang Solutions for posting the Videos from the latest Erlang Factory in Sweden, had a talk specifically about benchmarking ETS.  This was really awesome, and anyone who cares about ETS should watch it.

tl;dw – ETS is MAGIC, however, if you are trying to scale a product using ETS, be VERY aware of the number of physical chips on the server vs. the number of cores on those chips.  There are runtime flags to pin process schedulers to individual cores, but there are tradeoffs.

Screen Shot 2013-12-09 at 10.19.30 AM