On Thu, 6 Feb 2020 at 13:16, Amit Kapila <amit.kapil...@gmail.com> wrote: > > On Tue, Jun 26, 2018 at 12:47 PM Masahiko Sawada <sawada.m...@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