> Won't it always use the same freelist to remove and add the entry from > freelist as for both cases it will calculate the freelist_idx in same > way?
No. If "our" freelist is empty when we try to remove an item from it we borrow item from another freelist. Then this borrowed item will be returned to "our" freelist instead of original. Without some sort of additional logic there is no way to figure out what freelist was original. Generally speaking negative nentries value is not something that couldn't be solved. But I would like to remind that in this context we are discussing a quick and dirty solution created for benchmark purposes in a first place. > You are not convinced, then lets leave it to committer unless > somebody else wants to try that suggestion. Agree. Frankly I'm tired of rewriting this patch over and over and over again. So I would like to avoid rewriting it once again unless there is a clear indication that this way we would gain something. Benchmarks shows that this is not a case thus it's only a matter of taste and intuition. We know from experience that both are bad advisers in optimization matter. I suggest we merge this patch already: http://www.postgresql.org/message-id/CA+Tgmobtf9nH566_jjs=jrtymq5hdqdarf5j7o+abdowqhe...@mail.gmail.com ... and get done with it. Clearly this patch is good enough --- reviewed, tested, discussed, has proven performance extremum. When and if dynahash will become a bottleneck again nothing will stop us from optimizing it one more time for hardware we will have by then. Who knows what this hardware will be like in 5-10 years? Don't we have better things to do now than arguing about imaginary benchmarks and taste? Lets see what is committer's opinion on this. -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers