> - why did you remove "ut_ad(mtr->trx->fake_changes);" from the original patch?
> Looks like a good idea to me.
Unintentionally and it is a good idea, will add back.
> - what's the purpose of unfixing the sibling pages from the buffer? How about
> adding a comment?
Because this is prefetch and fixing the pages is only a side effect of reading them without any latch, it does not serve any purpose besides increasing buffer pool pressure temporarily a tiny bit (the fixing is until the end of fake changes trx, so I expect it to be short).
In both cases the pages still might get evicted from LRU before the real transaction comes that uses those pages, which is a workload timing issue, not really fixable at the code level.
I will add a comment.
> - it must be "} else {" rather than "}<newline>else {"
> - why did you remove "ut_ad( mtr->trx- >fake_changes) ;" from the original patch?
> Looks like a good idea to me.
Unintentionally and it is a good idea, will add back.
> - what's the purpose of unfixing the sibling pages from the buffer? How about
> adding a comment?
Because this is prefetch and fixing the pages is only a side effect of reading them without any latch, it does not serve any purpose besides increasing buffer pool pressure temporarily a tiny bit (the fixing is until the end of fake changes trx, so I expect it to be short).
In both cases the pages still might get evicted from LRU before the real transaction comes that uses those pages, which is a workload timing issue, not really fixable at the code level.
I will add a comment.
> - it must be "} else {" rather than "}<newline>else {"
Bad habit :)