Обсуждение: BRIN Scan: Optimize memory allocation in function 'bringetbitmap'

Поиск
Список
Период
Сортировка

BRIN Scan: Optimize memory allocation in function 'bringetbitmap'

От
"Jinyu Zhang"
Дата:

BRIN Scan: Optimize memory allocation in function 'bringetbitmap'.
We can allocate memory for some pointer before do long loop instead of allocating
memory in long loop.

Before optimizing code (warm run)
postgres=# select count(*) from lineitem where l_orderkey=1;
 count
-------
     6
(1 row)

Time: 456.219 ms

After optimizing code (warm run)
postgres=# select count(*) from lineitem where l_orderkey=1;
 count
-------
     6
(1 row)

Time: 349.219 ms

The following shows the DDL of this test case.
CREATE TABLE LINEITEM ( L_ORDERKEY    INTEGER NOT NULL,
                             L_PARTKEY     INTEGER NOT NULL,
                             L_SUPPKEY     INTEGER NOT NULL,
                             L_LINENUMBER  INTEGER NOT NULL,
                             L_QUANTITY    DECIMAL(15,2) NOT NULL,
                             L_EXTENDEDPRICE  DECIMAL(15,2) NOT NULL,
                             L_DISCOUNT    DECIMAL(15,2) NOT NULL,
                             L_TAX         DECIMAL(15,2) NOT NULL,
                             L_RETURNFLAG  CHAR(1) NOT NULL,
                             L_LINESTATUS  CHAR(1) NOT NULL,
                             L_SHIPDATE    DATE NOT NULL,
                             L_COMMITDATE  DATE NOT NULL,
                             L_RECEIPTDATE DATE NOT NULL,
                             L_SHIPINSTRUCT CHAR(25) NOT NULL,
                             L_SHIPMODE     CHAR(10) NOT NULL,
                             L_COMMENT      VARCHAR(44) NOT NULL);

copy lineitem from '/home/jinyu/mywork/dbgen/lineitem.tbl' delimiter '|';
create index brinLineitem on lineitem using brin(L_ORDERKEY) with(pages_per_range = 1);

Jinyu Zhang


网易考拉iPhone6s玫瑰金5288元,现货不加价

Re: BRIN Scan: Optimize memory allocation in function 'bringetbitmap'

От
Simon Riggs
Дата:
On 27 September 2015 at 02:15, Jinyu Zhang <beijing_pg@163.com> wrote:

BRIN Scan: Optimize memory allocation in function 'bringetbitmap'.
We can allocate memory for some pointer before do long loop instead of allocating
memory in long loop.

Before optimizing code (warm run)
postgres=# select count(*) from lineitem where l_orderkey=1;
 count
-------
     6
(1 row)

Time: 456.219 ms

After optimizing code (warm run)
postgres=# select count(*) from lineitem where l_orderkey=1;
 count
-------
     6
(1 row)

Time: 349.219 ms

Patch?
 
--
Simon Riggs                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Re: BRIN Scan: Optimize memory allocation in function 'bringetbitmap'

От
zhangjinyu
Дата:
Sorry,  I forgot attaching patch. But I have send path in another thread.
Please see this thread "Patch: Optimize memory allocation in function
'bringetbitmap' ".





--
View this message in context:
http://postgresql.nabble.com/BRIN-Scan-Optimize-memory-allocation-in-function-bringetbitmap-tp5867536p5867648.html
Sent from the PostgreSQL - hackers mailing list archive at Nabble.com.



Re: BRIN Scan: Optimize memory allocation in function 'bringetbitmap'

От
zhangjinyu
Дата:
I forgot disable-c-assert last test.  
The following show the test result when disable-c-assert.
After optimize code (warm run)
postgres=# select count(*) from lineitem where l_orderkey=1;count
-------    6
(1 row)

Time: 327.143 ms
Before optimizing code (warm run)
postgres=# select count(*) from lineitem where l_orderkey=1;count
-------    6
(1 row)

Time: 404.323 ms

Here is the patch. patch_optimize_mem.patch_optimize_mem
<http://postgresql.nabble.com/file/n5867980/patch_optimize_mem.patch_optimize_mem>  

Jinyu Zhang



--
View this message in context:
http://postgresql.nabble.com/BRIN-Scan-Optimize-memory-allocation-in-function-bringetbitmap-tp5867536p5867980.html
Sent from the PostgreSQL - hackers mailing list archive at Nabble.com.



Re: Re: BRIN Scan: Optimize memory allocation in function 'bringetbitmap'

От
Simon Riggs
Дата:
On 28 September 2015 at 15:47, zhangjinyu <beijing_pg@163.com> wrote:
Sorry,  I forgot attaching patch. But I have send path in another thread.
Please see this thread "Patch: Optimize memory allocation in function
'bringetbitmap' ".

Please don't submit a patch on a separate thread. Thanks.

Let's close this thread, so we have just one. 

--
Simon Riggs                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services