As an exercise, I decided to try for myself what my cold start time is + query round trip, on Neon's free tier. Note that I am in Austin connecting to us-east-2.
$ time psql -c 'SELECT 1' 'postgresql://neondb_owner:<password>@<endpoint>.us-east-2.aws.neon.tech/neondb?sslmode=require'
Null display is "(null)".
?column?
----------
1
(1 row)
real 0m1.156s
user 0m0.036s
sys 0m0.020s
You can't make a trend out of 1 data point, but thought I would provide it nonetheless.I haven’t touched it in a year, but I tried it just now and it still works. Cold startup for the Deno Fresh instance and the database query were about 700ms each, assuming I interpreted my logs correctly.
Subjectively, it’s slow enough that it’s worth putting up a dialog box, but it disappears fast enough that you don’t need a spinner or progress bar. A meta-refresh of one second seems good enough.
(I’m in California but the demo uses an East Coast instance for Neon. I set it up that way because I wanted to know how it would feel.)
Demo: https://postgres-counter-demo.deno.dev/
Source code: https://github.com/skybrian/postgres-counter-demo/
https://neon.tech/demos/instant-postgres
(Neon Employee)
"Live" database > CockroachDB (few hundred ms) > NeonDB (2-3 seconds) > traditional cold start. This is just my impression and the data is made up but that is how it has felt as a user. So there are definitely levels of "scaling to zero"