News for hackers. Stuff that matters.
Re:Ask HN: What is your “I don't care if this succeeds” proj... by melony on Friday February 11, 2022 @12:13AM (#30297279)
Isn't elixir supposed to scale better than this?
Re:Ask HN: What is your “I don't care if this succeeds” proj... by trutannus on Friday February 11, 2022 @12:24AM (#30297372)
Elixir probably isn't the bottleneck. The VPS instance itself, and whatever server they're using there, probably bit the dust.
Re:Ask HN: What is your “I don't care if this succeeds” proj... by Charlieholtz on Friday February 11, 2022 @09:48AM (#30302062)
yeah so I'm seeing a ton of "(Postgrex.Error) FATAL 53300 (too_many_connections) remaining connection slots are reserved for non-replication superuser connections", which I'm guessing means the pool size is too small? Although I've tried upping that, CPU, and memory, and none have seemed to fix it. My devops skills still aren't great so if anyone has any ideas on how to help, let me know!

This might be a good opportunity to change the server to try out fly.io

Re:Ask HN: What is your “I don't care if this succeeds” proj... by dbetteridge on Friday February 11, 2022 @05:13PM (#30307646)
Pgbouncer is your friend for postgres dB's with lots of client connections.

Larger pool size only helps if they're freed up quicker than they are used.

Re:Ask HN: What is your “I don't care if this succeeds” proj... by LecroJS on Friday February 11, 2022 @06:17PM (#30308172)
Would you mind elaborating on the second point? Is this unique to larger pools? My inclination is that this would be true for pools of all sizes
Re:Ask HN: What is your “I don't care if this succeeds” proj... by psd1 on Saturday February 12, 2022 @07:11AM (#30312193)
I suspect GP meant: increasing pool size is only prolonging the inevitable

I've also observed on other DBs that you can increase the connection pool but it shifts the problem to other resources.

Re:Ask HN: What is your “I don't care if this succeeds” proj... by LecroJS on Saturday February 12, 2022 @08:01AM (#30312442)
Thanks for the clarification. Makes sense
Re:Ask HN: What is your “I don't care if this succeeds” proj... by tormeh on Friday February 11, 2022 @08:38AM (#30301298)
BEAM is not fast. You're probably going to get better performance with Node.js. It is however really really low-latency. But that doesn't help with handling load. Anyway, even so I'd guess bandwidth or the database is the issue.
Re:Ask HN: What is your “I don't care if this succeeds” proj... by romanbaron on Tuesday February 15, 2022 @10:18AM (#30347531)
BEAM is not fast when it comes to CPU intensive workloads. "Better performance" has many dimensions, in many (most?) scenarios of web serving the bottleneck is latency to other services (i.e. Postgres) and not the processing of the web server, like you suspect in this case as well.

BEAM/Erlang/Elixir's main advantage IMHO is parallelism and "cheap" concurrency that's easy to wrap one's head around. It reuses multiple cores, and processes (lightweight threads) are both cheap (smaller stack size, per-process GC) and easy to get right (due to immutability of data structures and supervision). Also you'll get less spiky latency even under high load.

Node.js main advantages are the breadth of the library ecosystem, industry familiarity and its JIT compiler (if used correctly). At the cost of more setup one can also run an instance per core if they care for parallelism.

So I'd suggest that with BEAM he'd get quite a good performance both in terms of developer time and in serving many (network bound) requests on a multicore machine.

Re:Ask HN: What is your “I don't care if this succeeds” proj... by exikyut on Friday February 11, 2022 @09:10AM (#30301649)
> BEAM is not fast

> It is however really really low latency

I've been interested in Erlang for a while, and reading this is intriguing. Taken literally the above makes no sense :) but it also kind of... does, sort of, and I would like to understand how this works.

Re:Ask HN: What is your “I don't care if this succeeds” proj... by tormeh on Friday February 11, 2022 @09:34AM (#30301916)
There's often a tradeoff between latency and throughput. Think GC algorithms or IO buffers. The Erlang project has historically chosen the far left end of this spectrum. They also haven't cared about numerical performance at all, delegating that to C code.
Re:Ask HN: What is your “I don't care if this succeeds” proj... by exikyut on Friday February 11, 2022 @10:35AM (#30302598)
Ooooh, burst response as opposed to flat-out super tight hot loops.

That honestly makes a lot of sense. Thanks!

Re:Ask HN: What is your “I don't care if this succeeds” proj... by meowtimemania on Friday February 11, 2022 @04:10AM (#30299098)
Probably too many queries to the database.