Add bound check before bsearch() for performance In the current lazy vacuum implementation, some index AMs such as btree indexes call lazy_tid_reaped() for each index tuple during ambulkdelete to check if the index tuple points to the (collected) garbage tuple. In that function, we simply call bsearch(), but we should be able to know the result without bsearch() if the index tuple points to the heap tuple that is out of range of the collected garbage tuples. Therefore, add a simple bound check before resorting to bsearch(). Testing has shown that this can give significant performance benefits.
Author: Masahiko Sawada <[email protected]> Discussion: https://www.postgresql.org/message-id/flat/ca+fd4k76j8jkzjzcx8uqeugvayamsnqz0ilut_xgbp-_-bd...@mail.gmail.com Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/bbaf315309ed1194d451326cc8f4f59a45906408 Modified Files -------------- src/backend/access/heap/vacuumlazy.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+)
