Report sort phase progress in parallel btree build
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Fri, 11 Jun 2021 23:07:32 +0000 (19:07 -0400)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
Fri, 11 Jun 2021 23:07:32 +0000 (19:07 -0400)
commit5cc1cd502879d642da799e1fd12619d83d987369
tree15d00b7f3ac910a1b63db2ed56758100ad228f2e
parentab55d742eb7162c22ee60f1e15e07d2a60063c4e
Report sort phase progress in parallel btree build

We were already reporting it, but only after the parallel workers were
finished, which is visibly much later than what happens in a serial
build.

With this change we report it when the leader starts its own sort phase
when participating in the build (the normal case).  Now this might
happen a little later than when the workers start their sorting phases,
but a) communicating the actual phase start from workers is likely to be
a hassle, and b) the sort phase start is pretty fuzzy anyway, since
sorting per se is actually initiated by tuplesort.c internally earlier
than tuplesort_performsort() is called.

Backpatch to pg12, where the progress reporting code for CREATE INDEX
went in.

Reported-by: Tomas Vondra <tomas.vondra@enterprisedb.com>
Author: Matthias van de Meent <boekewurm+postgres@gmail.com>
Reviewed-by: Greg Nancarrow <gregn4422@gmail.com>
Reviewed-by: Álvaro Herrera <alvherre@alvh.no-ip.org>
Discussion: https://postgr.es/m/1128176d-1eee-55d4-37ca-e63644422adb
src/backend/access/nbtree/nbtsort.c