]> granicus.if.org Git - postgresql/commit
Improve performance in freeing memory contexts
authorKevin Grittner <kgrittn@postgresql.org>
Tue, 8 Dec 2015 23:32:49 +0000 (17:32 -0600)
committerKevin Grittner <kgrittn@postgresql.org>
Tue, 8 Dec 2015 23:32:49 +0000 (17:32 -0600)
commit25c539233044c235e97fd7c9dc600fb5f08fe065
tree0410cf09723344b326ddd992475273253cec9415
parent521f0458dcd7bb28636250cdfce9b1a3020cff4c
Improve performance in freeing memory contexts

The single linked list of memory contexts could result in O(N^2)
performance to free a set of contexts if they were not freed in
reverse order of creation.  In many cases the reverse order was
used, but there were some significant exceptions that caused real-
world performance problems.  Rather than requiring all callers to
care about the order in which contexts were freed, and hunting down
and changing all existing cases where the wrong order was used, we
add one pointer per memory context so that the implementation
details are not so visible.

Jan Wieck
src/backend/utils/mmgr/mcxt.c
src/include/nodes/memnodes.h