Обсуждение: why after increase the hash table partitions, tpmc decrease
We use benchmarksql to start tpcc test in postgresql 9.3.3.
Before test we set benchmarksql client number about 800. And we increase the hash partitions from 16 to 1024 , in order to reduce the hash partition locks competition.
We expect that after increase the number of partitions, reduces lock competition, TPMC should be increased. But the test results on the contrary, after modified to 1024, TPMC did not increase, but decrease.
Why such result?
We modify the following macro definition:
NUM_BUFFER_PARTITIONS 1024
LOG2_NUM_PREDICATELOCK_PARTITIONS 10
LOG2_NUM_LOCK_PARTITIONS 10
Hi, > We modify the following macro definition: > NUM_BUFFER_PARTITIONS 1024 > LOG2_NUM_PREDICATELOCK_PARTITIONS 10 > LOG2_NUM_LOCK_PARTITIONS 10 IME, increase in NUM_BUFFER_PARTITIONS is effective but that in LOG2_NUM_LOCK_PARTITIONS results in performance degradation. Probably because it leads to an increase in overhead of LockReleaseAll() in src/backend/storage/lmgr/lock.c. I recommends that LOG2_NUM_LOCK_PARTITIONS should not be increased so much. Best regards, Takashi Horikawa -- > -----Original Message----- > From: pgsql-performance-owner@postgresql.org > [mailto:pgsql-performance-owner@postgresql.org] On Behalf Of Xiaoyulei > Sent: Tuesday, September 02, 2014 4:00 PM > To: pgsql-performance@postgresql.org > Cc: yetao > Subject: [PERFORM] why after increase the hash table partitions, tpmc > decrease > > > > We use benchmarksql to start tpcc test in postgresql 9.3.3. > > Before test we set benchmarksql client number about 800. And we increase > the hash partitions from 16 to 1024 , in order to reduce the hash partition > locks competition. > > We expect that after increase the number of partitions, reduces lock > competition, TPMC should be increased. But the test results on the contrary, > after modified to 1024, TPMC did not increase, but decrease. > > Why such result? > > > > We modify the following macro definition: > > NUM_BUFFER_PARTITIONS 1024 > > LOG2_NUM_PREDICATELOCK_PARTITIONS 10 > > LOG2_NUM_LOCK_PARTITIONS 10 > >