Re: Proposal: Integrity check
От | Zdenek Kotala |
---|---|
Тема | Re: Proposal: Integrity check |
Дата | |
Msg-id | 479DC78C.6030608@sun.com обсуждение исходный текст |
Ответ на | Re: Proposal: Integrity check (Simon Riggs <simon@2ndquadrant.com>) |
Список | pgsql-hackers |
Simon Riggs wrote: > On Fri, 2008-01-25 at 17:56 +0100, Zdenek Kotala wrote: >> Regarding to Robert Mach's work during Google SOC on data integrity >> check. I would like to improve storage module and implement some >> Robert's code into the core. >> >> I would like to make following modification: >> >> 1) Add ReadBuffer_noerror (recommend me better name) function which will >> accept damaged page without Error. This page will be marked as corrupted >> and when ReadBuffer will touch this page then it will be handled in >> standard way. >> >> This is important for check and repair functions to process all table >> without interruption. > > We shouldn't let duff data into shared buffers at all. As Tom mentioned before. I agree, it could cause a lot of problems. > I think you could mix the two methods of reading buffers > > - start a subtransaction > - read blocks into shared buffers > - if error, then re-read block into private memory and examine > - carry on thru table in a new subtransaction It seems like good idea. > OK with other points, except I don't want a new command. Let's do it as > a function that can accept block ranges to check, not just whole tables. > e.g. pg_check_blocks(17, 43) would check blocks 17 -> 43 It makes sense. I think following function should cover all cases: pg_check_blocks() - all db pg_check_blocks(relno) - all relation pg_check_blocks(relno, start, stop) - selected interval pg_check_blocks(relno, array of blocks) - selected blocks Zdenek
В списке pgsql-hackers по дате отправления: