5 ms·
Preemptive is pretty nice. You can have a for loop that runs forever and not take over. It does processes nicely they're green thread iirc very fast to create.
by digitalzombie 8y ago
Preemptive is pretty nice. You can have a for loop that runs forever and not take over.
It does processes nicely they're green thread iirc very fast to create.
Clustering is built into it with security.
It's built for soft real time so reliability is pretty nice much more battle tested than perhaps JVM.
It's not own by Oracle is a big deal for me.
- misterbowfinger 8y agoWhat's "soft" real time mean, vs .... "hard" real time? Real real time?
- xj9 8y agohard vs. soft real time is a matter of latency tolerance. human-facing systems (like telecom) need to be low latency from a human perspective, which is a higher threshold than what you could tolerate in a mechanical context where 100ms could mean damaging some expensive hardware.
- finnthehuman 8y agoThe difference is if your system requirements tolerate missing a timing deadline. Hard real-time: antilock brakes Soft real-time: video game frame rate
- masklinn 8y ago"Real time" is defined in terms of deadlines, a system is real-time if operations have specific deadlines, times they take to execute. The level of real-timeness is what happens when an operation misses its deadline: * In a hard real-time system, missing a deadline is total system failure. Deadlines tend to be tight, and system correctness or integrity may not be maintained in the face of a missed deadline. Rocket guidance systems for instance, if a process misses its deadline the rocket can veer off-course or blowup or abort or…; other examples of hard real-time system are engine controls or medical devices. * In a firm real-time system, missed deadline leads to QoS degradation, and the result of the operation is ignored/discarded after a deadline miss. Manufacturing systems tend to be that, missing deadlines will usually ruin parts (possibly for some time afterwards), but the production can usually recover and continue. * Soft real-time are a relaxation of firm, where the result of the operation is still valid after a deadline miss, but its value usually diminishes as the deadline recedes into the past, real-time audio transmission (phones & stuff) is usually there: you want your audio to be delivered "immediately" but can still use it if there's a small delay (missed deadline), however as delay increases delivering the data becomes less and less useful e.g. a few hundreds milliseconds delay on a phone line is annoying, a few minutes makes it useless.
- bobwaycott 8y agoThis is a fantastic explanation of the differences with really good analogies. Thanks.
- chriswarbo 8y agoIt's standard terminology: https://en.wikipedia.org/wiki/Real-time_computing#Soft https://en.wikipedia.org/wiki/Real-time_computing#Soft
- lightbyte 8y ago>Clustering is built into it with security Just to note, distributed erlang is NOT secure AT ALL. You absolutely need your own source of network isolation to keep it secure. By default the EPMD daemon (that coordinates nodes in a cluster) listens on an open port and accepts node join requests if they contain a correct secret cookie (short authentication string). EPMD has zero protection against brute force attempts to guess a cookie. If your EPMD port is open to the internet it is trivial to gain access to your entire cluster and execute arbitrary code. See: https://insinuator.net/2017/10/erlang-distribution-rce-and-a-cookie-bruteforcer/ https://insinuator.net/2017/10/erlang-distribution-rce-and-a...