Experiencing the XLOG in action
We will use the transaction log throughout this book, and to give you a deeper insight into how things work on a technical level, we have added this section dealing exclusively with the internal workings of the XLOG machinery. We will avoid going down to the C level as this would be way beyond the scope of this book, but we will provide you with insights that are hopefully deep enough.
Understanding the XLOG records
Changes made to the XLOG are record-based. What does that mean? Let's assume you are adding a row to a table:
test=# INSERT INTO t_test VALUES (1, 'hans');
INSERT 0 1
In this example, we are inserting values into a table containing two columns. For the sake of this example, we want to assume that both columns are indexed.
Remember what you learned before: the purpose of the XLOG is to keep those data files safe. So this operation will trigger a series of XLOG entries. First, the data file (or files) related to the table will be written...