Re: Optimize JsonbContainerTypeName by reordering type checks

From: Chao Li <li(dot)evan(dot)chao(at)gmail(dot)com>
To: pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: Optimize JsonbContainerTypeName by reordering type checks
Date: 2025-09-08 13:27:29
Message-ID: CAEoWx2n25k=amT2u_KY+Dk-UmV8GZiHfx=qpmh0RC=PTbAO+nA@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi Hacker,

This is an innocent refactor that doesn't change logic and improve
performance of jsonb_typeof() a little bit.

I have done a performance test that proves a tiny performance improvement:

With the master branch:
```
% pgbench -n --no-vacuum -T 120 -c 8 -j 4 -f test_jsonb_type.sql evantest
tps = 83290.213196 (without initial connection time)

# second run
tps = 83709.266846 (without initial connection time)

# third run
tps = 83531.014990 (without initial connection time)
```

With this patch:
```
% pgbench -n --no-vacuum -T 120 -c 8 -j 4 -f test_jsonb_type.sql evantest
tps = 84172.324715 (without initial connection time)

# second run
tps = 84082.619469 (without initial connection time)

# third run
tps = 84260.671778 (without initial connection time)
```

With 3 runs average tps, this patch makes ~0.8% improvement for
jsonb_typeof().

My test script is attached, it can run against any database. And attached
v2 patch file has a tiny change over v1.

Best regards,
Chao Li (Evan)
---------------------
HighGo Software Co., Ltd.
https://www.highgo.com/

Attachment Content-Type Size
test_jsonb_type.sql application/octet-stream 388 bytes
v2-0001-jsonb-Optimize-JsonbContainerTypeName-by-reorderi.patch application/octet-stream 1.5 KB

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Robert Haas 2025-09-08 13:36:13 Re: [PG19-3 PATCH] Don't ignore passfile
Previous Message Andrei Lepikhov 2025-09-08 13:27:27 Re: Query Performance Degradation Due to Partition Scan Order – PostgreSQL v17.6