News for hackers. Stuff that matters.
Re:You Are Not Google (2017) by cheez on Friday April 05, 2019 @12:00PM (#19583813)
Queuing and retry works most of the time. Only time I truly get "database is locked" is when I open the shell while other processes are accessing the DB
Re:You Are Not Google (2017) by ngrilly on Friday April 05, 2019 @01:06PM (#19584657)
Are all writes blocked during database migrations?

ALTER TABLE is quite limited in SQLite (for example there is no DROP COLUMN). Have you missed this?

Re:You Are Not Google (2017) by cheez on Friday April 05, 2019 @04:25PM (#19586663)
All writes are blocked during database migrations, so there is potential offline time. For example, when I added the index, I needed to be offline. Fortunately, my application is only needed during business hours.

Yes I miss proper ALTER TABLE a lot when it would have been useful. But my experience shows me that I can design software pretty well following YAGNI and the occasional instances of when I need missing functionality is more than made up for the ease of use otherwise.

Re:You Are Not Google (2017) by ngrilly on Friday April 05, 2019 @04:48PM (#19586891)
Thanks for sharing your experience with SQLite :-)

What are the advantages, in your own experience, of using SQLite instead of something like PostgreSQL? With PostgreSQL, you could run database migrations during business hours and use a proper ALTER TABLE.

Re:You Are Not Google (2017) by cheez on Friday April 05, 2019 @05:05PM (#19587040)
Main reason is that SQLite is embedded with my application. There isn't a second, third or fourth "microservice" to spin up. I know Terraform/Docker, love them, but the gymnastics I need to orchestrate for my particular situation is not worth it. So for the tradeoff of complexity for functionality, SQLite hits a very good sweet spot for me.
Re:You Are Not Google (2017) by ngrilly on Friday April 05, 2019 @01:02PM (#19584593)
Where do you queue: in memory? on disk? in a dedicated queue server (Redis, Kafka, ActiveMQ, etc.)? in another SQLite database?
Re:You Are Not Google (2017) by cheez on Friday April 05, 2019 @04:26PM (#19586677)
So far, haven't needed queuing outside of a single thread in the application (I know, what happens if it crashes!) Hasn't happened in ~8 years. Won't cry if it does.
Re:You Are Not Google (2017) by ngrilly on Friday April 05, 2019 @04:51PM (#19586914)
I have an app that uses an in-memory queue too in one thread :-)

I'm curious: why do you queue instead of directly writing to the database?

Re:You Are Not Google (2017) by cheez on Friday April 05, 2019 @05:05PM (#19587037)
At the moment, I queue to batch insert real time data at ~5 second intervals. It seems less wasteful of resources, but quite frankly is probably not needed.