Re: Hint Bits and Write I/O
От | Florian G. Pflug |
---|---|
Тема | Re: Hint Bits and Write I/O |
Дата | |
Msg-id | 483C7CE8.2090404@phlo.org обсуждение исходный текст |
Ответ на | Hint Bits and Write I/O (Simon Riggs <simon@2ndquadrant.com>) |
Ответы |
Re: Hint Bits and Write I/O
|
Список | pgsql-hackers |
Simon Riggs wrote: > After some discussions at PGCon, I'd like to make some proposals for > hint bit setting with the aim to reduce write overhead. > > Currently, when we see an un-hinted row we set the bit, if possible and > then dirty the block. > > If we were to set the bit but *not* dirty the block we may be able to > find a reduction in I/O. In many cases this would make no difference at > all, since we often set hints on an already dirty block. In other cases, > particularly random INSERTs, UPDATEs and DELETEs against large tables > this would reduce I/O, though possibly increase accesses to clog. Hm, but the io overhead of hit-bit setting occurs only once, while the pressure on the clog is increased until we set the hint-bit. This looks like not writing the hit-bit update to disk results in worse throughput unless there are many updated, and only very few selects. But not too many updates either, because if a page gets hit by tuple updates faster than the bgwriter writes it out, you won't waste any io on hit-bit-only writes either. That might turn out to be a pretty slim window which actually shows substantial IO savings... > My proposal is to have this as a two-stage process. When we set the hint > on a tuple in a clean buffer we mark it BM_DIRTY_HINTONLY, if not > already dirty. If we set a hint on a buffer that is BM_DIRTY_HINTONLY > then we mark it BM_DIRTY. > > The objective of this is to remove effects of single index accesses. So effectively, only the first hit-bit update hitting a previously clean buffer gets treated specially - the second hit-bit update flags the buffer as dirty, just as it does now? That sounds a bit strange - why is it exactly the *second* write that triggers the dirtying? Or did I missunderstand what you wrote? regards, Florian Pflug
В списке pgsql-hackers по дате отправления: