Re: effect of JIT tuple deform?

From: Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
To: Tomas Vondra <tomas(dot)vondra(at)2ndquadrant(dot)com>
Cc: Andres Freund <andres(at)anarazel(dot)de>, Dmitry Dolgov <9erthalion6(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: effect of JIT tuple deform?
Date: 2018-06-27 15:38:31
Message-ID: CAFj8pRAOcSXNnykfH=M6mNaHo+g=FaUs=DLDZsOHdJbKujRFSg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

2018-06-27 17:19 GMT+02:00 Tomas Vondra <tomas(dot)vondra(at)2ndquadrant(dot)com>:

> On 06/26/2018 09:25 PM, Pavel Stehule wrote:
>
>> Hi
>>
>> ...
>>
>> So I am able to see effect of jit_tuple_deforming, and very well, but
>> only if optimization is active. When optimization is not active then
>> jit_tuple_deforming does slowdown.
>>
>> So maybe a usage of jit_tuple_deforming can be conditioned by
>> jit_optimization?
>>
>>
> Can you share the test case and some detail about the hardware and
> PostgreSQL configuration?
>

I did very simple test

0.

master branch without asserts, shared buffer to 1GB
tested on Lenovo T520 8GB RAM 8CPU, i7
Fedora 28, gcc CFLAGS="-ggdb -Og -g3 -fno-omit-frame-pointer" --with-llvm

1.

select 'create table wt(' || string_agg(format('%I int', 'c' || i),',') ||
')' from generate_series(1,100) g(i) \gexec

2.

begin;
select 'insert into wt values(' || (select
string_agg((random()*10000)::int::text,',') from generate_series(1,j - j +
100) g(i)) || ')' from generate_series(1,1000000) gg(j) \gexec
insert into wt select * from wt;
commit;

3.

set max_paralel_workers to 0; -- the effect of JIT will be more visible

analyze wt;
\timing

select sum(c99) from wt;

I tested some combination of:

jit: off on
jit_inline_above_cost: 0, 10000000000000
jit_optimize_above_cost: 0, 10000000000000
jit_tuple_deforming: on, off

My primitive tests shows nice possitive effect of jit_tuple_deforming if
jit optimization is active. When jit optimization is not active, then
jit_tuple_deforming did slowdown in my test.

So there is range of costs between 100000 and 500000 where
jit_tuple_deforming didn't work well (without optimization)

I am limmited by small memory of my notebook - when I created table larger
than 3GB, then I got IO waits on my crypted disc, and any effect of JIT was
eliminated.

Regards

Pavel

> regards
>
> --
> Tomas Vondra http://www.2ndQuadrant.com
> PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
>

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Andres Freund 2018-06-27 15:44:18 Re: assert in nested SQL procedure call in current HEAD
Previous Message Tomas Vondra 2018-06-27 15:25:05 Re: WAL prefetch