Re: Improvement of checkpoint IO scheduler for stable transaction responses

From: KONDO Mitsumasa <kondo(dot)mitsumasa(at)lab(dot)ntt(dot)co(dot)jp>
To: Andres Freund <andres(at)2ndquadrant(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>, Heikki Linnakangas <hlinnakangas(at)vmware(dot)com>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Improvement of checkpoint IO scheduler for stable transaction responses
Date: 2013-07-11 12:29:07
Message-ID: 51DEA513.2000108@lab.ntt.co.jp
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,l

I create fsync v3 v4 v5 patches and test them.

* Changes
- Add considering about total checkpoint schedule in fsync phase (v3 v4 v5)
- Add considering about total checkpoint schedule in write phase (v4 only)
- Modify some implementations from v3 (v5 only)

I use linear combination method for considering about total checkpoint schedule
which are write phase and fsync phase. V3 patch was considered about only fsync
phase, V4 patch was considered about write phase and fsync phase, and v5 patch
was considered about only fsync phase.

Test result is here. Benchmark setting and server are same as previous test. '-*'
shows checkpoint_completion_target in each tests. And all tests which are except
'fsync v3_disabled' set 'checkpointer_fsync_delay_ratio=1' and
'checkpointer_fsync_delay_threshold=1000'. 'fsync v3_disabled' set
'checkpointer_fsync_delay_ratio=0' and 'checkpointer_fsync_delay_threshold= -1'.
V5 patch is testing now:-), but it will be same score as v3 patch.

* Result
** DBT-2 result
| NOTPM | 90%tile | Average | S.Deviation | Maximum
---------------------+-----------+---------+---------+-------------+--------
fsync v3-0.7 | 3649.02 | 9.703 | 4.226 | 3.853 | 21.754
fsync v3-0.9 | 3694.41 | 9.897 | 3.874 | 4.016 | 20.774
fsync v3-0.7_disabled| 3583.28 | 10.966 | 4.684 | 4.866 | 31.545
fsync v4-0.7 | 3546.38 | 12.734 | 5.062 | 4.798 | 24.468
fsync v4-0.9 | 3670.81 | 9.864 | 4.130 | 3.665 | 19.236

** Average checkpoint duration (sec) (Not include during loading time)
| write_duration | sync_duration | total | punctual to
checkpoint schedule
---------------------+----------------+---------------+--------+--------------------------------
fsync v3-0.7 | 296.6 | 251.8898 | 548.48 | OK
fsync v3-0.9 | 292.086 | 276.4525 | 568.53 | OK
fsync v3-0.7_disabled| 303.5706 | 155.6116 | 459.18 | OK
fsync v4-0.7 | 273.8338 | 355.6224 | 629.45 | OK
fsync v4-0.9 | 329.0522 | 231.77 | 560.82 | OK

** Increase of checkpoint duration (%) (Reference point is 'fsync v3-0.7_disabled'.)
| write_duration | sync_duration | total
---------------------+----------------+---------------+-------
fsync v3-0.7 | 97.7% | 161.9% | 119.4%
fsync v3-0.9 | 96.2% | 177.7% | 123.8%
fsync v3-0.7_disabled| 100.0% | 100.0% | 100.0%
fsync v4-0.7 | 90.2% | 228.5% | 137.1%
fsync v4-0.9 | 108.4% | 148.9% | 122.1%

* Examination
** DBT-2 result
V3 patch seems good result which is be faster response time about 10%-30% and
inclease NOTPM about 5% than no sleep(fsync v3-0.7_disabled), and v4 patch is not
good result. However, 'fsync v4-0.9' is same score as v3 patch when more large
checkpoint_completion_target. I think that considering about checkpoint schedule
about write phase and fsync phase makes more harsh in IO schedule. Because write
phase IO schedule is more strict than normal write phase. And it is also bad in
fsync phase and concern latter.

** Average checkpoint duration
All methods are punctual to checkpoint schedule. In enabling fsync sleep, it is
longer fsync time, however total time are much the same as no sleep.
'fsync v4-0.7 ' becomes very bad sync duration and total time. It indicates that
changing checkpoint_completion_target is very delicate. It had not better change
write phase scheduling, the same as it used to. At write phase in normal setting
, it have sufficiently time for punctual to checkpoint schedule. And I think that
many user want to be compatible with old version.

What do you think about these patches?

Best regards,
--
Mitsumasa KONDO
NTT Open Source Software Center

Attachment Content-Type Size
Improvement_of_checkpoint_IO-scheduler_in_fsync_v3.patch text/x-diff 10.1 KB
Improvement_of_checkpoint_IO-scheduler_in_fsync_v4.patch text/x-diff 11.7 KB
Improvement_of_checkpoint_IO-scheduler_in_fsync_v5.patch text/x-diff 10.5 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Greg Stark 2013-07-11 13:43:21 Re: robots.txt on git.postgresql.org
Previous Message Magnus Hagander 2013-07-11 09:55:40 Re: docbook-xsl version for release builds