Re: Summary and Plan for Hot Standby
От | Heikki Linnakangas |
---|---|
Тема | Re: Summary and Plan for Hot Standby |
Дата | |
Msg-id | 4B000857.4060309@enterprisedb.com обсуждение исходный текст |
Ответ на | Re: Summary and Plan for Hot Standby (Simon Riggs <simon@2ndQuadrant.com>) |
Список | pgsql-hackers |
Simon Riggs wrote: > We need to wait for all current transactions to complete. (i.e. any > backend that has (or could) take an xid or an AccessExclusiveLock before > it commits.). Similar-ish to the wait for a CREATE INDEX CONCURRENTLY. > > The standby already performs this wait in the case where we overflow the > snapshot, so we have >64 subtransactions on *any* current transaction on > the master. The reason for that is (again) performance on master: we > choose not to WAL log new subtransactions. WAL-logging every new subtransaction wouldn't actually help. The problem with subtransactions is that if the subxid cache overflows in the proc array in the master, the information about the parent-child relationshiop is only stored in pg_subtrans, not in proc array. So when we take the running-xacts snapshot, we can't include that information, because there's no easy and fast way to scan pg_subtrans for it. Because that information is not included in the snapshot, the standby doesn't have all the information it needs until after it has seen that all the transactions that had an overflowed xid cache have finished. -- Heikki Linnakangas EnterpriseDB http://www.enterprisedb.com
В списке pgsql-hackers по дате отправления: