This page contains results comparing ordered_set with and without decentralized counters.

Benchmark Description

The benchmark measures how many ETS operations per second X Erlang processes can perform on a single table. Each of the X processes repeatedly selects an operation to do from a given set of operations. The likelihood that a certain operation will be selected is also given to the benchmark. The table that the processes operate on is prefilled with 500K items before each benchmark run starts. The source code for the benchmark is located in the function ets_SUITE:throughput_benchmark/0 (see "$ERL_TOP/lib/stdlib/test/ets_SUITE.erl"). Below is a list with brief descriptions of the operations:

Benchmark Machine and Erlang Parameters

Processor: NUMA machine with four Intel(R) Xeon(R) CPU E5-4650 CPUs (2.70GHz), eight cores each (i.e., the machine has a total of 32 physical cores, each with hyperthreading, which makes a total of 64 logical cores).
Memory: 128GB of RAM
OS: Debian GNU/Linux 9

Benchmark Results


Note that that lines can also be hidden by clicking on the corresponding label.


Bar Plot
Same X Spacing Between Points
Show [ordered_set,public]
Show [ordered_set,public,{write_concurrency,true}]
Show [ordered_set,public,{read_concurrency,true}]
Show [ordered_set,public,{write_concurrency,true},{read_concurrency,true}]
Show [set,public]
Show [set,public,{write_concurrency,true}]
Show [set,public,{read_concurrency,true}]
Show [set,public,{write_concurrency,true},{read_concurrency,true}]