On Mon, Nov 14, 2022 at 10:00 PM John Naylor <john.nay...@enterprisedb.com> wrote: > > On Mon, Nov 14, 2022 at 3:44 PM Masahiko Sawada <sawada.m...@gmail.com> wrote: > > > > 0004 patch is a new patch supporting a pointer tagging of the node > > kind. Also, it introduces rt_node_ptr we discussed so that internal > > functions use it rather than having two arguments for encoded and > > decoded pointers. With this intermediate patch, the DSA support patch > > became more readable and understandable. Probably we can make it > > smaller further if we move the change of separating the control object > > from radix_tree to the main patch (0002). The patch still needs to be > > polished but I'd like to check if this idea is worthwhile. If we agree > > on this direction, this patch will be merged into the main radix tree > > implementation patch. > > Thanks for the new patch set. I've taken a very brief look at 0004 and I > think the broad outlines are okay. As you say it needs polish, but before > going further, I'd like to do some experiments of my own as I mentioned > earlier: > > - See how much performance we actually gain from tagging the node kind. > - Try additional size classes while keeping the node kinds to only four. > - Optimize node128 insert. > - Try templating out the differences between local and shared memory. With > local memory, the node-pointer struct would be a union, for example. > Templating would also reduce branches and re-simplify some internal APIs, but > it's likely that would also make the TID store and/or vacuum more complex, > because at least some external functions would be duplicated.
Thanks! Please let me know if there is something I can help with. In the meanwhile, I'd like to make some progress on the vacuum integration and improving the test coverages. Regards, -- Masahiko Sawada Amazon Web Services: https://aws.amazon.com