Re: Using quicksort for every external sort run
| От | Peter Geoghegan |
|---|---|
| Тема | Re: Using quicksort for every external sort run |
| Дата | |
| Msg-id | CAM3SWZSbUXPgGoq8K9i+3Hn5e+5KqccNUOt-DW=qzAuHpn10yA@mail.gmail.com обсуждение исходный текст |
| Ответ на | Re: Using quicksort for every external sort run (Jeff Janes <jeff.janes@gmail.com>) |
| Список | pgsql-hackers |
On Mon, Dec 7, 2015 at 9:01 AM, Jeff Janes <jeff.janes@gmail.com> wrote: > So if this patch with this exact workload just happens to land on a > pre-existing infelicity, how big of a deal is that? It wouldn't be > creating a regression, just shoving the region that experiences the > problem around in such a way that it affects a different group of use > cases. > > And perhaps more importantly, can anyone else reproduce this, or understand it? That's odd. I've never seen anything like that in the field myself, but then I've never really been a professional DBA. If possible, could you try using the ioreplay tool to correlate I/O with a point in the trace_sort timeline? For both master, and the patch, for comparison? The tool is available from here: https://code.google.com/p/ioapps/ There is also a tool available to graph the recorded I/O requests over time called ioprofiler. This is the only way that I've been able to graph I/O over time successfully before. Maybe there is a better way, using perf blockio or something like that, but this is the way I know to work. While I'm quite willing to believe that there are oddities about our polyphase merge implementation that can result in what you call anti-sweetspots (sourspots?), I have a much harder time imagining why reverting my merge patch could make things better, unless the system was experiencing some kind of memory pressure. I mean, it doesn't change the algorithm at all, except to make more memory available from the merge by avoiding palloc() fragmentation. How could that possibly hurt? -- Peter Geoghegan
В списке pgsql-hackers по дате отправления: