I was comparing postgresql performance and was just curious about performance in case i want to store the updated index tuple version on a different page. I was looking into the code of heapam.c, but was not able to find loop which i should remove so that postgresql use a different buffer for updated index tuple version.
Did you mean to:
1. Force the old and new tuple to always be stored on different pages?
Hack heap_update so that it chooses a new page. I think you'll also need to hack RelationGetBufferForTuple to not return the same buffer.
Can you explain a bit more from inside the code where i have to make the changes :)? my focus is just to store the index tuple of an updated tuple onto a different page or on a different buffer.
2. Disable the HOT optimization, so that HOT is not used even if the old and new tuple are stored on the same page?
In heap_update, force satisfies_hot variable to false.
If I do change only this variable to false. then does it means, i have disabled the hot update.?
3. Allow HOT to be used even though the old and new tuple are stored on different pages?