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 по дате отправления: