From: Kyotaro Horiguchi <horikyota....@gmail.com>
> I thought that the advantage of this optimization is that we don't
> need to visit all buffers?  If we need to run a full-scan for any
> reason, there's no point in looking-up already-visited buffers
> again. That's just wastefull cycles.  Am I missing somethig?
> 
> I don't understand. If we chose to the optimized dropping, the reason
> is the number of buffer lookup is fewer than a certain threashold. Why
> do you think that the fork kind a buffer belongs to is relevant to the
> criteria?

I rethought about this, and you certainly have a point, but...  OK, I think I 
understood.  I should have thought in a complicated way.  In other words, 
you're suggesting "Let's simply treat all forks as one relation to determine 
whether to optimize," right?  That is, the code simple becomes:

Sums up the number of buffers to invalidate in all forks;
if (the cached sizes of all forks are valid && # of buffers to invalidate < 
THRESHOLD)
{
        do the optimized way;
        return;
}
do the traditional way;

This will be simple, and I'm +1.


Regards
Takayuki Tsunakawa





Reply via email to