Robert Haas wrote: >On Wed, Oct 20, 2010 at 5:30 PM, Stephen R. van den Berg <s...@cuci.nl> wrote: >> Ideal would be: put the table-oid inside the header of each page >> (either in the official header, or in the special area). >> This way even lost blocks can be correlated to the same table. >> I'd still vote for the latest known table definition in the first >> page. ?It's by no means perfect, but it will help 99% of all >> salvage attempts by an order of magnitude.
> and break on-disk compatibility just to make it easier to If it's inserted in the "special" area, it will not break any compatibility. >I don't think we should shrink the amount of usable space by 4 bytes >per block Instead of putting it in every page, it could be inserted (say) once every megabyte (if done in the special area) to avoid excessive overhead. >I'm pretty dubious about the proposal to stuff an otherwise-useless >metapage in every heap, too. The information is supposed to go in the special area, so it will not be an extra page. > If you have many small tables, you just >doubled your disk utilization For small tables, the table description typically is small as well, so in the common case it all will still fit in one page. >- worse than that, maybe, if some of >them are empty. An empty table does not contain any critical information which needs to be restored (by definition :-); so the code that inserts the table definition in the special area could easily be instructed *not* to write out this information unless the table actually has entries. > If we needed a metapage anyway and had extra space to >play with, stuffing some useful forensic information in there might be >worthwhile, but I have a hard time thinking that forensics alone is a >sufficient justification for such a change. The "change" could easily be made backward compatible to all on disk formats which support the special area pointer (I'm not sure how far back that is). -- Stephen. For children with short attention spans: boomerangs that don't come back. -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers