> Transaction logs are an essential part of databases because they ensure that no data is lost even when a system failure occurs. They are a history log of all changes and actions in a database system. This ensures that no data is lost due to failures, such as a power failure or a server crash. The log contains sufficient information about each transaction that has already been executed, so the database server can re…
The Internals of PostgreSQL
21–30 of 43 posts
Re: The Internals of PostgreSQL
#22The worst part of Postgres (and linux) is the awful mailing list driven development process. I have patches to Postgres that I'd rather just keep porting up every version than to try to figure out how to make Outlook work with a 1980s process. The internals themselves are quite nicely engineered as you'd expect
Re: The Internals of PostgreSQL
#23Re: The Internals of PostgreSQL
#24> Transaction logs are an essential part of databases because they ensure that no data is lost even when a system failure occurs. They are a history log of all changes and actions in a database system. This ensures that no data is lost due to failures, such as a power failure or a server crash. The log contains sufficient information about each transaction that has already been executed, so the database server can re…
What makes the writing horrendous?
Transaction logs then, are a separate record of these transactions into a log file. The quote says they are 'essential' but three paragraphs later in the link[0] is this: "The [log] mechanism was first implemented in version 7.1"; transaction logs are not essential for RDBMSs and are not essential for ensuring against data loss, they are one part of one larger design for reducing the chance of data loss. (Having a separate log file does not ensure that no data is lost in the event of a crash because the log file could also be lost by the same crash).
"so the database server can recover the database cluster" - the quote has switched from transaction logs as essential, to clustering-with-transaction-logs as essential, without clearly calling that out; there are clustering designs which don't need transaction logs so that isn't essential, and from the PostgreSQL documentation[1]: "It should be noted that log shipping is asynchronous, i.e., the [logs] are shipped after transaction commit. As a result, there is a window for data loss...". Neither transaction logs, nor log shipping clustering, are enough to ensure no data loss. It is possible to improve on that with synchronous_commit[2] (off by default in PostgreSQL) but that can still be designed badly to allow data loss to happen.
The quote is misleading about what transaction logs are for, what situations they can/cannot help with, and what other concerns are involved in guarding against data loss. Given that data loss is a particularly important concern in relational databases compared to some other software and systems, and that there are so many details which need to be considered to reduce risks of data loss, the quote being at all vague or misleading seems worse than it would be if writing about other systems, and worse than it would be if written in the context of 'a high level overview of databases'.
[0] http://www.interdb.jp/pg/pgsql09.html
[1] https://www.postgresql.org/docs/17/warm-standby.html
[2] https://www.postgresql.org/docs/17/warm-standby.html#SYNCHRO...
Re: The Internals of PostgreSQL
#25Earlier quoted context omitted.
> how to make Outlook work Well that’s your first problem. Unless you’re using corporate email?
Correct. It's corporate email. Imagine the amount of contributions that are gated behind stupid email policies because some fossil mailing list client can't handle modern email in the year of our lord 2025
> modern email
That can't be true. Now, I haven't used Outlook myself, but I've received enough garbage from that godforsaken relic of a time when MS wanted to EEE email to know that that can't be true.
FWIW, I've posted patches to the PG mailing list just fine with GMail. The web app, that is.
Re: The Internals of PostgreSQL
#26Earlier quoted context omitted.
What makes the writing horrendous?
I won't comment on the OP using 'horrendous' as an adjective, but that quote seems misleading and unclear to me. Transactions (not transaction logs) are about maintaining [relational] database consistency, not directly about ensuring no data loss. A database engine would rather roll back a partially applied transaction and lose the data in it, than update one table and not update another, breaking the relation betwee…
That seems entirely consistent with that quote.
Also, tangential.
Re: The Internals of PostgreSQL
#27Re: The Internals of PostgreSQL
#28Earlier quoted context omitted.
Correct. It's corporate email. Imagine the amount of contributions that are gated behind stupid email policies because some fossil mailing list client can't handle modern email in the year of our lord 2025
> Outlook > modern email That can't be true. Now, I haven't used Outlook myself, but I've received enough garbage from that godforsaken relic of a time when MS wanted to EEE email to know that that can't be true. FWIW, I've posted patches to the PG mailing list just fine with GMail. The web app, that is.
It's a very FOSS pathology.
Re: The Internals of PostgreSQL
#29Re: The Internals of PostgreSQL
#30Earlier quoted context omitted.
> Outlook > modern email That can't be true. Now, I haven't used Outlook myself, but I've received enough garbage from that godforsaken relic of a time when MS wanted to EEE email to know that that can't be true. FWIW, I've posted patches to the PG mailing list just fine with GMail. The web app, that is.
OK. Every major corporation uses Outlook and there is no way I can change that so by not accepting its foibles you are artificially stopping interested contributors who would do it on company time and hardware It's a very FOSS pathology.
If anything, this kind of excessive legal and process red tape is much more common in enterprise-driven vs. community-driven open source projects.