Based on lightweight threads or native (OS) threads? #97
Replies: 1 comment 1 reply
-
Hello. Sento actors don't by default map to native threads. That wouldn't scale. Instead Sento uses message-dispatchers which are kind of thread-pools of native threads. I'm working with Akka, a Java/Scala based Actor system, in production (professionally) which also 'just' has to work with native threads. But optimizing the right balance of number and size of message dispatchers and other worker thread-pool in large systems allows a massive IO throughput of many millions of asynchronous requests (or items of work). Eventually also Erlang has to map all its virtual threads to native threads. But Erlang (OTP) runtime is really very well optimized for massive concurrent work. |
Beta Was this translation helpful? Give feedback.
-
I'm currently evaluating various languages and runtimes to build a simulation that requires massive concurrency and task parallelism – millions (and later billions) of fluid, interacting compound entities. For now, everything seems to point into the BEAM/Elixir direction (GC, shared-nothing memory per process) – even though I would love to work interactively with CL instead of Elixir. Do Sento's actors map to native threads, or is there a (preemptive?) scheduler behind with lightweight processes? (Another actor framework I'm considering is https://riot.ml)
Beta Was this translation helpful? Give feedback.
All reactions