this post was submitted on 20 Mar 2026
776 points (98.7% liked)

Programmer Humor

30597 readers
219 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 2 years ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] lmr0x61@lemmy.ml 72 points 5 days ago (12 children)

As mentioned elsewhere, this is appropriate for anyone doing database administration, because DB writes should always be a trans action.

[–] Tja@programming.dev 2 points 4 days ago (10 children)

I get that this is a joke, but....

... ackshually it should almost never be a transaction only when there's absolutely no other option, because transactions kill your performance.

[–] silasmariner@programming.dev 4 points 4 days ago (1 children)

Actually transactions can be a secomd-layer safety-net for single-responsibility writers to ensure rollback on eg restarts and consistency on loadbalancer redecisions without having much of an impact on performance, and data integrity is usually quite important.

[–] Tja@programming.dev 1 points 3 days ago (1 children)

As long as the database is acid restarts should not be a factor. Data integrity is not helped by transactions, you would need error correcting codes for that. Plus the effect on performance is quite notable on all dbs I've worked with.

[–] silasmariner@programming.dev 1 points 3 days ago (1 children)

Restarts in a server between dB updates that in a sane world would be txns I meant (e.g update A, crash so don't update B). Anyway, in postgres they're pretty cheap in the absence of actual conflict -- more expensive if you have actual cinflicts, obvs.

[–] Tja@programming.dev 0 points 3 days ago (1 children)

"Pretty cheap" is very subjective...

[–] silasmariner@programming.dev 1 points 3 days ago* (last edited 3 days ago) (1 children)

Well it depends how much data integrity is worth to you, and how your system works. Every write in postgres is already a transaction - when you can get away with simple crud stuff, often there's nothing to do, you have transactionality already. Transaction isolation levels are where db operation costs might change under concurrent conflicting writes but you can tune that by ensuring single-writer-per-partition or whatever in your server logic and it might add a ms or two. OTOH if you have heavy contestation it can be much more expensive. The performance implications are complicated but can certainly kept to a fraction of overall cost depending on your workload!

[–] Tja@programming.dev 1 points 3 days ago (1 children)

Again, not data integrity (Error correction) but consistency (aCid). Adding two milliseconds to a half a millisecond operation is by no means cheap...

[–] silasmariner@programming.dev 1 points 3 days ago (1 children)

But adding it to an 80ms operation is. If your operation is 0.5ms it's either a read on a small table, or maybe a single write -- transaction isolation wouldn't even be relevant there. You're right that I did mean consistency rather that integrity though, slip of the terminology, but not really worth quibbling over. The point I meant was that I like my data to make sense, a funny quirk of mine.

[–] Tja@programming.dev 0 points 3 days ago (1 children)

If your single operations take 80ms either it's a toy app or someone didn't do their job (unoptimized queries, wrong technology, wrong modeling, etc).

[–] silasmariner@programming.dev 1 points 4 hours ago* (last edited 3 hours ago)

Lol what an absurd take. A transaction is a sequence of operations, not a single one, so even small tables can meet that threshold with enough query logic. I guess you're unfamiliar with medium to large datasets, but it's not uncommon to use the aggregate functions that SQL provides in real world situations, and on large tables that can easily reasonably exceed 1s. Toy my arse. Go play with yourself

Although this is no surprise tbh because apparently you don't understand why transactions are even necessary. Benchmarks shmenchmarks. Whether it works is more important.

load more comments (8 replies)
load more comments (9 replies)