Nextcloud asked in a poll at https://mastodon.social/@nextcloud@mastodon.xyz/115095096413238457 what database its users are running. Interestingly one fifth replied they don’t know. Should people know better where their data is stored, or is it a good thing everything is running so smoothly people don’t need to know what their software stack is built upon?
Whatever the docker compose file that I found had
“18% of car owners don’t know their brake fluid DOT rating.”
That is actually good news. Means that people more likely to be “normies” are adopting an alternative solution.
I write software for a living, and have worked with all 3 database options in the past. I don’t know what DB backend my nextcloud server is using, nor do I care.
Yeah, that is the kind of concern for the service developer or a very opinionated sys admin. For self-hosting, few people will reach the workload where such a decision has any material or measurable impact.
Self hosting doesn’t mean “being wasteful and letting containers duplicate services”. I want to know which DB application X is using, so I pool it for applications Y and Z.
For most applications the overhead of running a second DB server is negligible.
I disagree. You are just entertaining the idea that servers must always and forever be oversized, that’s the definition of wasteful (and environmentally irresponsible). Unless you are firing-up and throwing-away services constantly, nothing justifies this and sparing the relatively low effort it is to deploy your infrastructure knowingly.
Do you have the data to back that up? Have you measured how much of an impact on system load and power consumption having 2 separate DB processes has?
Roughly the same amount of work is being done by the CPU if you split your DBs between 2 servers or just use one. There might be a slight increase in memory usage, but that would only matter in a few niche applications and wouldn’t affect environmental impact.
Do you have the data to back that up?
I mean, you are the one making the exceptional claim that unnecessarily running multiple instances of programs on a device with finite resources has no practical adverse effect. Of course, the effects can be more or less drastic depending on the many variables at play (hardware, software, memory pressure, thread starvation, cache misses, …) and can indeed be negligible in some lucky circumstances. The point is that you don’t call that shot, and especially not by burying your head in the sand and pretending it’s never gonna be a problem.
Effective use of computing resources requires tuning. Introduction of a new service creates imbalance. Ensuring that the server performs nominally and predictably for all intended services is a balancing act and a sysadmin’s job. Services whose deployment settings are set by someone with no prior knowledge of the deployment constraints can’t be trusted to do a good job at it (that’s the nature of the physical world we live in, not my opinion), and promoting this attitude promote the kind of wasteful and irresponsible computing I was on about.
Now, I’ll give you the link to this basic helper for tuning a PostgreSQL server: https://pgtune.leopard.in.ua/
Will you tell me what are the correct inputs for my homelab (I won’t tell you the hardware, the set-up, the other services running on it, the state of the system, etc)?
And later, when you will distribute your successful container to millions of users, what will you respond to the angry ones that will complain that your software is slow, to no fault of your coding, because they happen to pile up multiple DBs, web servers, application servers, reverse proxies, … on their banana SoCs?I’m saying this based on real world experience: after a certain point you start to see deminishing returns when optimizing a system, and you’re better off focusing your efforts elsewhere. For most applications, customizing containerized services to share databases is far past that point.
And if it’s SQLite (which I believe is the default) it’s really just reading and writing a file on the file system.
This is one of my pet peeves with containerized services, like why would I want to run three or four instances of mariadb? I get it, from the perspective of the packagers, who want a ‘just works’ solution to distribute, but if I’m trying to run simple services on a 4 GB RPi or a 2 GB VPS, then replicating dbs makes a difference. It took a while, but I did, eventually, get those dockers configured to use a single db backend, but I feel like that completely negated the ‘easy to set up and maintain’ rationale for containers.
Precisely what pre-devops sysadmins were saying when containers were becoming trendy. You are just pushing the complexity elsewhere, and creating novel classes of problems for yourself (keeping your BoM in control and minimal is one of many others that got thrown away)
I also have no idea if my place has PVC or galvanized steel plumbing; or its designed electrical load. Why should users care about the DBMS.
I found this way funnier then I think you meant it… PVC wasn’t persistent volume claim was it?
Unless he installed kubernetes pipes, no.
If you need to fix something, you should know what it is.
I’ll get that info as soon as something breaks, I guess.
What’s a computer ?
East or West, SQLite is the best.
The rule of internet polls is that the funniest answer is always over-represented.
Every person using a computer should know what their filesystem is and what database they are using. Otherwise they are fools.
Can you believe kids don’t know what NTFS or APFS are these days?! Stupid iPad babies.
Haha at some point it did matter to regular folks though. I remember in Junior high when I would try to pirate games or software on Windows, I learned the big difference between fat32 and the new filesystem Microsoft released, NTFS because I couldn’t download files larger than 4GB on fat32.
I remember having to open “.zip.1” files lol. From the split zips.
At that point, were you regular folks though?
True, I guess not. But piracy was big at that age group because we were kids who didn’t have our own money, so if our parents didn’t buy the games we wanted, people would try to download them instead. So I fell into learning this detail by necesssity instead of out of pure curiosity or desire to learn more about the computer. I wanted to download Neverwinter Nights or whatever game, and fat32 was standing in my way, haha
I still have a FAT32 external drive that this (very) rarely still bites me 😫 there’s nothing important on it, so I’ve been lazy
Wait is APFS a new file system than NTFS? Guess I’m too busy on my Tiktoks and Nintendos to keep up to date
Apple file system
Ah that would explain why I didn’t know. I have next to no experience with Apple devices.
Armor piercing fin stabilized.
It’s used on popular toys and consumer gadgets. Most well to do tech nerds don’t bother with such riff raff either.
Kids don’t event know the folder struture of their Home directory, so why would they know what a File System is? Lol
Sir, this is a Wendy’s :)
*18% of the people who answered a poll on Mastodon
Isn’t that the whole point of containerised solutions? Having some pre-setup, auto-updating solution with very little requirement to dive into the details like what your database is and which dependencies you need to manage…
Honestly, does it matter to a regular user?
There will be some that do matter, if I were to run NC I would use Lite because why throw the data to another process just to write it to a disk when I only have a single node.Well it does depend on your exact use case, but using a proper database is usually the better option for production. Now if this is just some little service you made for yourself use whatever you want.
SQLite is a proper database. Realistically you’ll never exhaust its 278tb storage limits, it’s thoroughly battle tested, and it’s dead easy to backup.
I doubt nextcloud is running enough parallel db writes for this to actually matter — and if it is WAL mode is still probably good enough.
Once you have multiple software clients running then you will need a client server dbms like Postgres. For most home or group installations, this should not be an issue.
Since Nextcloud stores your actually data on the disk, it doesn’t actually matter all that much tbh
I don’t even know myself because I installed it via YunoHost
Same here with Freedombox.
A Freedombox user in the wild!! I’ve been following the project since 2011 but I never thought it really achieved its potential. How do you use yours, and how do you find it?
I’m not a very experienced user, but I’m happy with it. I have mainly a static blog, an almost unused Nextcloud, a Matrix server (down since yesterday, I don’t know why) and my calendar. It works quite well!
That’s good to hear, thanks for the reply!
That’s because they push the all in one container.