hot standby - merged up to CVS HEAD

Поиск
Список
Период
Сортировка
От Robert Haas
Тема hot standby - merged up to CVS HEAD
Дата
Msg-id 603c8f070907141812i4e6e8762s826d9b39e34e45a9@mail.gmail.com
обсуждение исходный текст
Ответы Re: hot standby - merged up to CVS HEAD  (Simon Riggs <simon@2ndQuadrant.com>)
Список pgsql-hackers
For reasons that can only be described as masochistic, I took it upon
myself to merge the Hot Standby patch up to CVS HEAD during my
vacation last week.  Here's what I did:

1. Downloaded norecoveryprocs-1.patch from
http://archives.postgresql.org/message-id/49A64D73.6090302@enterprisedb.com
2. Found the commit in my git clone to which it applied (for some
reason, I wasn't able to locate the commit mentioned in Heiki's git
diff output).
3. Incrementally merged in the changes from my master branch,
resolving conflicts as I went.
4. Fixed all the whitespace errors about which git diff --check
complained (there were many of these).
5. Made a quick copy-editing pass over the docs and fixed a few
obvious errors (stray words, missing punctuation).
6. Went through the comments and replaced a few replaced references to
8.4 with references to 8.5 where appropriate.
7. Published it here:
http://git.postgresql.org/gitweb?p=postgresql-rhaas.git;a=shortlog;h=refs/heads/hs

I have tested that this version of the patch:

1. Compiles and passes regression tests.
2. Works for the simplest possible test cases (select * from table on
standby, insert one row on master, checkpoint, select * from table on
standby again).

I don't expect this to be reviewed for CommitFest 2009-07.  For one
thing, I'm submitting it an hour-plus after the deadline; for another
thing, it needs a lot more testing than the above; for a third thing,
I haven't addressed any of the substantive issues with the patch that
Heikki mentioned here:

http://archives.postgresql.org/message-id/4A4DBF8F.8040007@enterprisedb.com

I would have liked to reach some of those issues, but I ran out of
time, and I don't understand the history of the development of this
patch well enough to separate the "crud" to which Heikki refers from
the non-crud (yet, anyway).  However, I'm hopeful that the work I've
done so far will be helpful to someone else in taking this forward,
and I thought it made sense to publish this now, before turning my
full attention to the CommitFest, in case someone else was
contemplating doing something similar.

A few other comments based on a preliminary reading of this patch:

- pg_last_recovered_xact_timestamp is documented to return "a default
value" when recovery is not in progress; the default value seems to be
2000-01-01 00:00:00 UTC, but the actual displayed value depends on the
time zone.  I think this is bogus; it should return NULL instead of
this "default value".
- Why do some of the functions in xlog.c have apparently totally
superfluous inner blocks?
- The documentation states that the fact that a pause request made
while waiting for a WAL file does not take effect until that WAL file
arrives, and that this is not a bug.  Why not?
- It appears that this code has been added (almost, but not quite,
verbatim) to the top of most (but I think not quite all) of the *_redo
functions.  Can/should this be centralized in StartupXLOG where
rm_redo is invoked?
- ProcArrayRemove() contains a commented-out hunk that should
presumably go away, unless of course it shouldn't be commented out.
- ProcArrayInitRecoveryEnvironment() does nothing except call
PublishStartupProcessInformation(), and therefore seems quite
unnecessary.

...Robert

Вложения

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

Предыдущее
От: Greg Stark
Дата:
Сообщение: Re: Index-only scans
Следующее
От: Robert Haas
Дата:
Сообщение: Re: CommitFest 2009-07 is Now Closed