Re: [PATCH] Microvacuum for gist.
От | Jeff Janes |
---|---|
Тема | Re: [PATCH] Microvacuum for gist. |
Дата | |
Msg-id | CAMkU=1zpZ+dwPpgwqZwM5fJsZGOg-yNi1YwdoPw6XioXYiOzyw@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: [PATCH] Microvacuum for gist. (Teodor Sigaev <teodor@sigaev.ru>) |
Ответы |
Re: [PATCH] Microvacuum for gist.
|
Список | pgsql-hackers |
On Wed, Sep 16, 2015 at 8:36 AM, Teodor Sigaev <teodor@sigaev.ru> wrote:
But It seems to me that it would be better to rewrite all mentions of
TupleDelete to MultiDelete in gist code.
Sure. Patch is attached, and it changes WAL format, so be carefull with testing.
Please, have a look.
Also in attach scripts reproduce bug from Jeff's report:
g.pl - creates and fills test table
w.pl - worker, could run in several session
Usage
perl g.pl | psql contrib_regression
perl w.pl | psql contrib_regression | grep 'UPDATE 0'
and killall -9 postgres while w.pl is running. Recovery will fail with high probability.
Thank you, Jeff, for report.
Thanks, that seems to have fixed it.
But I don't understand this comment:
+ /*
+ * While we delete only one tuple at once we could mix calls
+ * PageIndexTupleDelete() here and PageIndexMultiDelete() in
+ * gistRedoPageUpdateRecord()
+ */
Does this mean:
Since we delete only one tuple per WAL record here, we can call PageIndexTupleDelete() here and re-play it with PageIndexMultiDelete() in gistRedoPageUpdateRecord()
Thanks,
Jeff
В списке pgsql-hackers по дате отправления: