From: | Jeff Davis <pgsql(at)j-davis(dot)com> |
---|---|
To: | Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com> |
Cc: | Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>, vignesh C <vignesh21(at)gmail(dot)com>, Peter Smith <smithpb2250(at)gmail(dot)com>, Tomas Vondra <tomas(dot)vondra(at)enterprisedb(dot)com>, "Hayato Kuroda (Fujitsu)" <kuroda(dot)hayato(at)fujitsu(dot)com>, Shubham Khanna <khannashubham1197(at)gmail(dot)com>, Dilip Kumar <dilipbalaut(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | Re: Improve eviction algorithm in ReorderBuffer |
Date: | 2024-04-04 18:55:51 |
Message-ID: | 824af6660d028c5a0df76c229b38543099d2108d.camel@j-davis.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Thu, 2024-04-04 at 10:55 -0700, Jeff Davis wrote:
> * Make a proper indexed binary heap API that accepts a hash
> function
> and provides both heap methods and HT methods that operate based on
> values (transaction size and transaction ID, respectively).
> * Get rid of ReorderBuffer->by_txn and use the indexed binary heap
> instead.
An alternative idea:
* remove the hash table from binaryheap.c
* supply a new callback to the binary heap with type like:
typedef void (*binaryheap_update_index)(
bh_node_type node,
int new_element_index);
* make the remove, update_up, and update_down methods take the element
index rather than the pointer
reorderbuffer.c would then do something like:
void
txn_update_heap_index(ReorderBufferTXN *txn, int new_element_index)
{
txn->heap_element_index = new_element_index;
}
...
txn_heap = binaryheap_allocate(..., txn_update_heap_index, ...);
and then binaryheap.c would effectively maintain txn-
>heap_element_index, so reorderbuffer.c can pass that to the APIs that
require the element index.
Another alternative is to keep the hash table in binaryheap.c, and
supply a hash function that hashes the xid. That leaves us with two
hash tables still, but it would be cleaner than hashing the pointer.
That might be best for right now, and we can consider these other ideas
later.
Regards,
Jeff Davis
From | Date | Subject | |
---|---|---|---|
Next Message | Wolfgang Walther | 2024-04-04 19:09:30 | Re: Building with musl in CI and the build farm |
Previous Message | Jacob Champion | 2024-04-04 18:48:26 | Re: WIP Incremental JSON Parser |