On Thu, 6 Feb 2020 at 13:16, Amit Kapila <amit.kapila16@gmail.com> wrote:
>
> On Tue, Jun 26, 2018 at 12:47 PM Masahiko Sawada <sawada.mshk@gmail.com> wrote:
> >
> > Type of table: normal table, unlogged table
> > Number of child tables : 16, 64 (all tables are located on the same tablespace)
> > Number of clients : 32
> > Number of trials : 100
> > Duration: 180 seconds for each trials
> >
> > The hardware spec of server is Intel Xeon 2.4GHz (HT 160cores), 256GB
> > RAM, NVMe SSD 1.5TB.
> > Each clients load 10kB random data across all partitioned tables.
> >
> > Here is the result.
> >
> > childs | type | target | avg_tps | diff with HEAD
> > --------+----------+---------+------------+------------------
> > 16 | normal | HEAD | 1643.833 |
> > 16 | normal | Patched | 1619.5404 | 0.985222
> > 16 | unlogged | HEAD | 9069.3543 |
> > 16 | unlogged | Patched | 9368.0263 | 1.032932
> > 64 | normal | HEAD | 1598.698 |
> > 64 | normal | Patched | 1587.5906 | 0.993052
> > 64 | unlogged | HEAD | 9629.7315 |
> > 64 | unlogged | Patched | 10208.2196 | 1.060073
> > (8 rows)
> >
> > For normal tables, loading tps decreased 1% ~ 2% with this patch
> > whereas it increased 3% ~ 6% for unlogged tables. There were
> > collisions at 0 ~ 5 relation extension lock slots between 2 relations
> > in the 64 child tables case but it didn't seem to affect the tps.
> >
>
> How did you measure the collisions in this test? I think it is better
> if Mahendra can also use the same technique in measuring that count.
>
I created a created a SQL function that returns the hash value of the
lock tag, which is tag_hash(locktag, sizeof(RelExtLockTag)) %
N_RELEXTLOCK_ENTS. And examined the hash values of all tables.
Regards,
--
Masahiko Sawada http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services