Re: Trying to understand page structures in PG

Поиск
Список
Период
Сортировка
От Jeff Janes
Тема Re: Trying to understand page structures in PG
Дата
Msg-id CAMkU=1zrwRiSd9JutrjBecxxUewsE_D-CjNbpW28fNTOg0PbcQ@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Trying to understand page structures in PG  (rob stone <floriparob@gmail.com>)
Ответы Re: Trying to understand page structures in PG  (Albe Laurenz <laurenz.albe@wien.gv.at>)
Список pgsql-general
On Wed, Apr 6, 2016 at 8:35 AM, rob stone <floriparob@gmail.com> wrote:
> On Wed, 2016-04-06 at 10:33 +0000, Albe Laurenz wrote:
>
> <snip>
>> Every row has two system columns associated with it: xmin and xmax
>>
>> xmin is the transaction ID that created the row, while xmax is
>> the transaction ID that removed the row.
>>
>> So when an update takes place, xmax of the original row and xmin
>> of the new row are set to the transaction ID of the current
>> transaction.

> Out of curiosity:-
> 1) If you only updated a column defined as BOOLEAN, DATE or TIMESTAMP,
> the tuples physical size should be the same. Is it written back to the
> same page with altered xmin, xmax values?

Being the same size doesn't matter, because it *has* to be copied.

If there is room for the copy to go onto the same page, then that is
done.  If there is not room, then it goes onto a different page.

>
> 2) If you defined a table with a FILLFACTOR of say 70%, and there is
> still space left on its page for the updated tuple, does the same
> apply?
>
> I am curious because of "while xmax is the transaction ID that
> *removed* the row".

"marked for removal" would be more accurate.  If the row were actually
physically removed, it would no longer have a xmax to set.

Cheers,

Jeff


В списке pgsql-general по дате отправления:

Предыдущее
От: Jeff Janes
Дата:
Сообщение: Re: database is not accepting commands to avoid wraparound data loss in database
Следующее
От: John R Pierce
Дата:
Сообщение: Re: what database schema version management system to use?