Re: logtape.c stats don't account for unused "prefetched" block numbers
От | Peter Geoghegan |
---|---|
Тема | Re: logtape.c stats don't account for unused "prefetched" block numbers |
Дата | |
Msg-id | CAH2-Wzm-7+UiEC4EHLgJf32NO_W5UK+EfFFR8_mepWs26jDV1Q@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: logtape.c stats don't account for unused "prefetched" block numbers (Peter Geoghegan <pg@bowt.ie>) |
Ответы |
Re: logtape.c stats don't account for unused "prefetched" block numbers
|
Список | pgsql-hackers |
On Mon, Sep 14, 2020 at 6:56 PM Peter Geoghegan <pg@bowt.ie> wrote: > I'm not sure what I was talking about earlier when I connected this > with the main/instrumentation issue, since preallocation used by > logtape.c to help HashAggs-that-spill necessarily reserves blocks > without writing them out for a while (the fires in California have > made it difficult to be productive). You might write blocks out as > zero blocks first, and then only write the real data later > (overwriting the zero blocks). But no matter how the writes among > tapes are interlaced, the fact is that nBlocksAllocated can exceed > nBlocksWritten by at least one block per active tape. Oh, wait. Of course the point was that we wouldn't even have to use nBlocksAllocated in LogicalTapeSetBlocks() anymore -- we would make the assumption that nBlocksWritten could be used for all callers in all cases. Which is a reasonable assumption once you enforce that there are no active write buffers. Which is evidently a good idea anyway, since it saves on temp file disk space in HashAggs-that-spill/prealloc cases with very little work_mem. -- Peter Geoghegan
В списке pgsql-hackers по дате отправления: