Re: Logical decoding on standby
От
Craig Ringer
Тема
Re: Logical decoding on standby
Дата
Msg-id
CAMsr+YFXbcoCvCsY=CYpgCFJmQLr8X=MYWv04trtgLnVdDa45g@mail.gmail.com
Ответ на
Re: Logical decoding on standby (Andres Freund)
Список
Дерево обсуждения
Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: Logical decoding on standby Andres Freund <andres@anarazel.de>
Re: Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: Logical decoding on standby Petr Jelinek <petr@2ndquadrant.com>
Re: Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: Logical decoding on standby Robert Haas <robertmhaas@gmail.com>
Re: Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: Logical decoding on standby Robert Haas <robertmhaas@gmail.com>
Re: Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: [HACKERS] Logical decoding on standby Petr Jelinek <petr.jelinek@2ndquadrant.com>
Re: [HACKERS] Logical decoding on standby Michael Paquier <michael.paquier@gmail.com>
Re: [HACKERS] Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: [HACKERS] Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: [HACKERS] Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: [HACKERS] Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: [HACKERS] Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: [HACKERS] Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: [HACKERS] Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: [HACKERS] Logical decoding on standby Thom Brown <thom@linux.com>
Re: [HACKERS] Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: [HACKERS] Logical decoding on standby Michael Paquier <michael.paquier@gmail.com>
Re: [HACKERS] Logical decoding on standby Simon Riggs <simon.riggs@2ndquadrant.com>
Re: [HACKERS] Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: [HACKERS] Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: [HACKERS] Logical decoding on standby Simon Riggs <simon.riggs@2ndquadrant.com>
Re: [HACKERS] Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: [HACKERS] Logical decoding on standby Petr Jelinek <petr.jelinek@2ndquadrant.com>
Re: [HACKERS] Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: [HACKERS] Logical decoding on standby Andres Freund <andres@anarazel.de>
Re: [HACKERS] Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: [HACKERS] Logical decoding on standby Simon Riggs <simon.riggs@2ndquadrant.com>
Re: [HACKERS] Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: [HACKERS] Logical decoding on standby Andres Freund <andres@anarazel.de>
Re: [HACKERS] Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: [HACKERS] Logical decoding on standby Andres Freund <andres@anarazel.de>
Re: [HACKERS] Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: [HACKERS] Logical decoding on standby Andres Freund <andres@anarazel.de>
Re: [HACKERS] Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: [HACKERS] Logical decoding on standby Andres Freund <andres@anarazel.de>
Re: [HACKERS] Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: [HACKERS] Logical decoding on standby Simon Riggs <simon.riggs@2ndquadrant.com>
Re: [HACKERS] Logical decoding on standby Andres Freund <andres@anarazel.de>
Re: [HACKERS] Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: [HACKERS] Logical decoding on standby Simon Riggs <simon.riggs@2ndquadrant.com>
Re: [HACKERS] Logical decoding on standby Andres Freund <andres@anarazel.de>
Re: [HACKERS] Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: [HACKERS] Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: [HACKERS] Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: [HACKERS] Logical decoding on standby Simon Riggs <simon.riggs@2ndquadrant.com>
Re: [HACKERS] Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: [HACKERS] Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: [HACKERS] Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: [HACKERS] Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: Logical decoding on standby Simon Riggs <simon.riggs@2ndquadrant.com>
Re: Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: Logical decoding on standby Andres Freund <andres@anarazel.de>
Re: Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: Logical decoding on standby Andres Freund <andres@anarazel.de>
Re: Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: Logical decoding on standby Simon Riggs <simon.riggs@2ndquadrant.com>
Re: Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: Logical decoding on standby Simon Riggs <simon.riggs@2ndquadrant.com>
Re: Logical decoding on standby Andres Freund <andres@anarazel.de>
Re: Logical decoding on standby Simon Riggs <simon.riggs@2ndquadrant.com>
Re: Logical decoding on standby Andres Freund <andres@anarazel.de>
Re: Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: Logical decoding on standby Andres Freund <andres@anarazel.de>
Re: Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: Logical decoding on standby Andres Freund <andres@anarazel.de>
Re: Logical decoding on standby Robert Haas <robertmhaas@gmail.com>
Re: Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: Logical decoding on standby Simon Riggs <simon.riggs@2ndquadrant.com>
Re: Logical decoding on standby Andres Freund <andres@anarazel.de>
Re: Logical decoding on standby Simon Riggs <simon.riggs@2ndquadrant.com>
Re: Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: [HACKERS] Logical decoding on standby Simon Riggs <simon.riggs@2ndquadrant.com>
Re: [HACKERS] Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: [HACKERS] Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: [HACKERS] Logical decoding on standby Michael Paquier <michael.paquier@gmail.com>
Re: [HACKERS] Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: [HACKERS] Logical decoding on standby Michael Paquier <michael.paquier@gmail.com>
Re: [HACKERS] Logical decoding on standby Andrew Dunstan <andrew@dunslane.net>
Re: [HACKERS] Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: [HACKERS] Logical decoding on standby Petr Jelinek <petr.jelinek@2ndquadrant.com>
Re: [HACKERS] Logical decoding on standby Craig Ringer <craig@2ndquadrant.com>
Re: [HACKERS] Logical decoding on standby Petr Jelinek <petr.jelinek@2ndquadrant.com>
Re: [HACKERS] Logical decoding on standby Robert Haas <robertmhaas@gmail.com>
On 22 November 2016 at 03:14, Andres Freund wrote: > Hi, > > On 2016-11-21 16:17:58 +0800, Craig Ringer wrote: >> I've prepared a working initial, somewhat raw implementation for >> logical decoding on physical standbys. > > Please attach. Otherwise in a year or two it'll be impossible to look > this up. Fair enough. Attached. Easy to apply with "git am". I'm currently looking at making detection of replay conflict with a slot work by separating the current catalog_xmin into two effective parts - the catalog_xmin currently needed by any known slots (ProcArray->replication_slot_catalog_xmin, as now), and the oldest actually valid catalog_xmin where we know we haven't removed anything yet. That'll be recorded in a new CheckPoint.oldestCatalogXid field and in ShmemVariableCache ( i.e. VariableCacheData.oldestCatalogXid ). Vacuum will be responsible for advancing VariableCacheData.oldestCatalogXid by writing an expanded xl_heap_cleanup_info record with a new latestRemovedCatalogXid field and then advancing the value in the ShmemVariableCache. Vacuum will only remove rows of catalog or user-catalog tables that are older than VariableCacheData.oldestCatalogXid. This allows recovery on a standby to tell, based on the last checkpoint + any xl_heap_cleanup_info records used to maintain ShmemVariableCache, whether the upstream has removed catalog or user-catalog records it needs. We can signal walsenders with running xacts to terminate if their xmin passes the threshold, and when they start a new xact they can check to see if they're still valid and bail out. xl_heap_cleanup_info isn't emitted much, but if adding a field there is a problem we can instead add an additional xlog buffer that's only appended when wal_level = logical. Doing things this way avoids: * the need for the standby to be able to tell at redo time whether a RelFileNode is for a catalog or user-catalog relation without access to relcache; or * the need to add info on whether a catalog or user-catalog is being affected to any xlog record that can cause a snapshot conflict on standby; or * a completely reliably way to ensure hot_standby_feedback can never cease to affect the master even if the user does something dumb at the cost of sometimes somewhat delaying removal of catalog or user-catalog tuples when wal_level >= hot_standby, a new CheckPoint field, and a new field in xl_heap_cleanup_info . The above is not incorporated in the attached patch series, see the prior post for status of the attached patches. -- Craig Ringer http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services
В списке pgsql-hackers по дате отправления
От: Robert Haas
Дата: