Re: A thought on Index Organized Tables
От | Greg Stark |
---|---|
Тема | Re: A thought on Index Organized Tables |
Дата | |
Msg-id | 407d949e1002251545y323642dt59ca48d62b716b4d@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: A thought on Index Organized Tables (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: A thought on Index Organized Tables
|
Список | pgsql-hackers |
On Thu, Feb 25, 2010 at 9:25 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote: > We've sweated > blood to get that struct down to where it is; there's no way to make it > smaller without giving up some really fundamental things, for example > the ability to do UPDATE :-( Oh, this is a tangent but I think there are some more gains there, at least now that we've eliminated vacuum full. The more we save the more complex the code and data structure becomes so there may be a point where it's not worthwhile any more. And of course if we do try to do any of these then it wouldn't be part of IOT it would be a general improvement which would help tables as well. For future reference, here are some items that have come up in the past: 1) We've talked about having a "common xmin" in the page header and then a bit indicating that the xmin is missing from the tuple header because it matches the value in the page header. This would save a lot of space in the common case where data was all loaded in a single transaction and all the tuples have the same xmin. 2) Now that we don't have vacuum full the command-id is kind of a waste. We could replace it with some kind of local memory data structure which is capable of spilling to disk. When the transaction commits it can be thrown away and no other session needs to be able to see it. This could have an impact on future work on parallel query but I think our phantom-command-id already has such issues anyways. 3) xmax and ctid are unavoidable since we never know when a tuple might be deleted or updated in the future. But if we allowed the user to mark a table "insert-only" then it could be left out and any operation which tries to delete, update, or select for update a row in the table would throw an error.
В списке pgsql-hackers по дате отправления: