| 3 Dec 2025 |
aloisw | Hm yes, that's where I have seen these messages. Not noticed any excessive slowness though, but I can see different bottlenecks showing up there depending on machine speed. | 18:20:07 |
aloisw | For example, one thread not being enough to saturate the disk, transaction commit being stuck in fsync, deadlock on shitty code. | 18:21:23 |
aloisw | Not sure how much better other databases are on most of these points, except the first obviously. | 18:22:50 |
aloisw | SQL> CONNECT 'meow.db';
Statement failed, SQLSTATE = 08001
I/O error during "lock" operation for file "/home/aloisw/meow.db"
-Database already opened with engine instance, incompatible with current
Am I doing something wrong or does it not support concurrency at all? | 19:07:59 |
K900 | You have to use WAL mode | 19:08:17 |
K900 | To get single writer multiple readers | 19:08:22 |
aloisw | This is firebird, not SQLite. | 19:09:05 |
aloisw | Looks like it only supports concurrency in server mode. I suppose that's not so great for the Lix use case? (I would guess embedded support is why it was brough up to begin with?) | 19:15:51 |
raitobezarius | ah if it doesn't support it in embedded mode, meh… | 19:29:40 |
raitobezarius | we never went so far yet alois | 19:29:51 |
raitobezarius | so thanks for checking | 19:29:53 |
aloisw | "Deadlock" is not quite the right word here I guess, what I mean is the problem where idle transactions will still block others. | 19:36:24 |
aloisw | To be clear this is 10 minute experimentation, maybe there are some weird non-default flags that make it work, but I somewhat doubt it. | 19:36:58 |
Qyriad | hm, I mean server mode is fine when we have the daemon running so long as we can do writes without it | 19:41:09 |
K900 | At that point we might as well run postgres lol | 19:41:45 |
Qyriad | postgres has a file mode? | 19:42:05 |
aloisw | No, but if you accept running a server then it doesn't matter from the complexity perspective whether that server is Firebird or Postgres. | 19:42:43 |
Qyriad | true, but we have to retain the "the system is offline", local store case | 19:43:47 |
Qyriad | gods help you if your fucking postgres server binary becomes corrupt and you can't just nix build it back because it can't connect to the postgres daemon, fear.jpeg | 19:44:43 |
aloisw | What does "the system is offline" mean exactly here? You can run the postgres server as a subprocess (in fact, you'd probably actually want that so that you don't get confusion between the stores). | 19:45:41 |
aloisw | You can replace "postgres server binary" by "sqlite library" here. | 19:46:08 |
522 it/its ⛯ΘΔ | though with lix you can make a statically linked build that, afaik, you can just rsync and use that to recover if the nix store is fucked
... statically linked embedded postgres server binary | 19:54:25 |
aloisw | why not, we have that for the shell already | 19:55:14 |
aloisw | Ah wait can't have a statically linked postgres, I remember. | 19:58:30 |
Qyriad | Yeah and imho a long term goal is to entirely yeet the installer and replace it with a single statically linked lix binary, and lix will just be capable of bootstrapping itself | 20:03:23 |
aloisw | firebird-static-x86_64-unknown-linux-musl> checking for /proc/self/maps... configure: error: cannot check for file existence when cross compiling
Not that Firebird gets a lot further… | 20:03:54 |
raitobezarius | i dreamed of shipping pg but i think it's unrealistic yeah | 20:14:09 |
Jassuko | There is beauty in storing package manager data in flat files. I’ve needed to touch APT ”database” quite some times when things have gone bad.
SQLite would be still within a scope of somewhat fixable in weird situations, but depending on psql or some full server suite software… uhhh -_- | 20:22:26 |
Jassuko | Idea of using psql burns down as soon as you need to ever bump the major version forward. The migration hell and backwards incompatibility will bite instantly on package manager -like use case. | 20:24:42 |
Jassuko | Current SQLite on the other hand can probably read 20 years old DB files just fine. | 20:25:36 |