Re: [COMMITTERS] pgsql: Improve memory management for external sorts.
От | Robert Haas |
---|---|
Тема | Re: [COMMITTERS] pgsql: Improve memory management for external sorts. |
Дата | |
Msg-id | CA+TgmobkDRj0eBa9WG17YcwSmJfF25NLf0X4Y_=iVkX80S5bqw@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: [COMMITTERS] pgsql: Improve memory management for external sorts. (Robert Haas <robertmhaas@gmail.com>) |
Ответы |
Re: [COMMITTERS] pgsql: Improve memory management for external sorts.
|
Список | pgsql-hackers |
On Fri, Mar 18, 2016 at 2:39 PM, Robert Haas <robertmhaas@gmail.com> wrote: > On Fri, Mar 18, 2016 at 2:25 PM, Andres Freund <andres@anarazel.de> wrote: >> On 2016-03-17 20:11:00 +0000, Robert Haas wrote: >>> Improve memory management for external sorts. >>> >>> Introduce a new memory context which stores tuple data, and reset it >>> at the end of each merge pass; this helps avoid memory fragmentation >>> and, consequently, overallocation. Also, for the final merge patch, >>> eliminate memory context chunk header overhead entirely by allocating >>> all of the memory used for buffering tuples during the merge in a >>> single chunk. Since this modestly increases the number of tuples we >>> can store, grow the memtuples array a bit so that we're less likely to >>> run short of slots there. >>> >>> Peter Geoghegan. Review and testing of patches in this series by >>> Jeff Janes, Greg Stark, Mithun Cy, and me. >> >> Cross compiling for windows results in: >> /home/andres/src/postgresql/src/backend/utils/sort/tuplesort.c: In function ‘beginmerge’: >> /home/andres/src/postgresql/src/backend/utils/sort/tuplesort.c:2695:34: warning: format ‘%ld’ expects argument of type‘long int’, but argument 4 has type ‘int64 {aka long long int}’ [-Wformat=] >> elog(LOG, "tape %d initially used %ld KB of %ld KB batch " >> ^ >> /home/andres/src/postgresql/src/backend/utils/sort/tuplesort.c:2695:34: warning: format ‘%ld’ expects argument of type‘long int’, but argument 5 has type ‘int64 {aka long long int}’ [-Wformat=] >> config.status: creating src/interfaces/ecpg/include/ecpg_config.h >> >> /home/andres/src/postgresql/src/backend/utils/sort/tuplesort.c: In >> function ‘beginmerge’: >> /home/andres/src/postgresql/src/backend/utils/sort/tuplesort.c:2695:34: >> warning: format ‘%ld’ expects argument of type ‘long int’, but argument >> 4 has type ‘int64 {aka long long int}’ [-Wformat=] >> elog(LOG, "tape %d initially used %ld KB of %ld KB batch " >> >> Which seems like a valid complain on a LLP64 platform (i.e. where long >> is 32bit) like windows. > > Oops. Thanks for the report. Does this fix it? Trying again to attach the patch. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
Вложения
В списке pgsql-hackers по дате отправления: