Re: [Bizgres-general] WAL bypass for INSERT, UPDATE and
От | Greg Stark |
---|---|
Тема | Re: [Bizgres-general] WAL bypass for INSERT, UPDATE and |
Дата | |
Msg-id | 87vex74y73.fsf@stark.xeocode.com обсуждение исходный текст |
Ответ на | Re: [Bizgres-general] WAL bypass for INSERT, UPDATE and ("Andrew Dunstan" <andrew@dunslane.net>) |
Ответы |
Re: [Bizgres-general] WAL bypass for INSERT, UPDATE and
|
Список | pgsql-hackers |
"Andrew Dunstan" <andrew@dunslane.net> writes: > Bruce Momjian said: > > DROP would drop the table on a restart > > after a non-clean shutdown. It would do _no_ logging on the table and > > allow concurrent access, plus index access. DELETE is the same as > > DROP, but it just truncates the table (perhaps TRUNCATE is a better > > word). > > > > EXCLUSIVE would allow only a single session to modify the table, and > > would do all changes by appending to the table, similar to COPY LOCK. > > EXCLUSIVE would also not allow indexes because those can not be > > isolated like appending to the heap. EXCLUSIVE would write all dirty > > shared buffers for the table and fsync them before committing. SHARE > > is the functionality we have now, with full logging. > > I an horribly scared that this will be used as a "performance boost" for > normal use. I would at least like to see some restrictions that make it > harder to mis-use. Perhaps restrict to superuser? Well that's its whole purpose. At least you can hardly argue that you didn't realize the consequences of "DELETE ROWS ON RECOVERY"... :) Some thoughts: a) I'm not sure I understand the purpose of EXCLUSIVE. When would I ever want to use it instead of DELETE ROWS? b) It seems like the other feature people were talking about of not logging for a table created within the same transactionshould be handled by having this flag implicitly set for any such newly created table. Ie, the test for whetherto log would look like: if (!table->logged && table->xid != myxid) ... c) Every option in ALTER TABLE should be in CREATE TABLE as well. d) Yes as someone else mentioned, this should only be allowable on a table with no foreign keys referencing it. -- greg
В списке pgsql-hackers по дате отправления: