3 ms·
Most websites/frameworks access their database through a singleton pattern/single-connection anyway. Edit: Sometimes you have to lie and lead people down the w
by busterarm 6y ago
Most websites/frameworks access their database through a singleton pattern/single-connection anyway.
Edit: Sometimes you have to lie and lead people down the wrong path to enlightenment... ;)
- Thaxll 6y agoThat's not the case no, you usually access your database with thread pool. Otherwise everyone would wait until the single connection is free. Once you have a bit more users that tries to write everything will fall appart.
- busterarm 6y agoYes. ;)
- OldHand2018 6y agoWell, let me throw out a crazy idea: Nobody said you have to use a single database/file. Obviously, you are going to want to spend a couple minutes thinking about referential integrity. But how often do you delete records in your web app?
- quesera 6y agoUPDATE is also a write, and references crossing files sounds like a nightmare. If your deployment environment has serious constraints, I'm sure you could make it work. The product you deliver would be SQLite + custom DBI layer to hide SQLite's limitations. It would be a lot more work, and not be as robust or scalable, compared to a more traditional selection. But I can imagine cases where it would be appropriate.
- HelloNurse 6y agoA big database id not an issue. Contention requires a large number of writers, not a large amount of cold data.
- kuschku 6y agoAs an IRC client with an SQLite backend: several hundred times per second. Per user. While reads are more like once every day per user.
- mywittyname 6y agoOne could implement a write queue and caching for the front end. That might sound like a lot of work to go through to avoid moving to a proper multi-user database. But given that writes are probably done through a handful of API endpoints, it's probably not really that much work to implement.
- quesera 6y agoAny site with real volume will have a connection pool. All of those connections might need to write, and this is where SQLite gets tricky to implement at scale. I love SQLite! It's perfect for many use cases, but not all. Fortunately, Postgres is also excellent.
- trisiak 6y agoCan you provide some examples of frameworks with such pattern? I actually have never seen it in any of the Python or Go web applications that I had a chance to work with.