Re: pgbench: allow to exit immediately when any client is aborted

Поиск
Список
Период
Сортировка
От Yugo NAGATA
Тема Re: pgbench: allow to exit immediately when any client is aborted
Дата
Msg-id 20230807110248.32ddf963ac41e4970e2a9078@sraoss.co.jp
обсуждение исходный текст
Ответ на Re: pgbench: allow to exit immediately when any client is aborted  (Tatsuo Ishii <ishii@sraoss.co.jp>)
Ответы Re: pgbench: allow to exit immediately when any client is aborted  (Yugo NAGATA <nagata@sraoss.co.jp>)
Список pgsql-hackers
On Sat, 05 Aug 2023 12:16:11 +0900 (JST)
Tatsuo Ishii <ishii@sraoss.co.jp> wrote:

> > Hi,
> > 
> > I would like to propose to add an option to pgbench so that benchmark
> > can quit immediately when any client is aborted. Currently, when a
> > client is aborted due to some error, for example, network trouble, 
> > other clients continue their run until a certain number of transactions
> > specified -t is reached or the time specified by -T is expired. At the
> > end, the results are printed, but they are not useful, as the message
> > "Run was aborted; the above results are incomplete" shows.
> 
> Sounds like a good idea. It's a waste of resources waiting for
> unusable benchmark results until t/T expired. If we graze on the
> screen, then it's easy to cancel the pgbench run. But I frequently let
> pgbench run without sitting in front of the screen especially when t/T
> is large (it's recommended that running pgbench with large enough t/T
> to get usable results).

Thank you for your agreement.

> > For precise benchmark purpose, we would not want to wait to get such
> > incomplete results, rather we would like to know some trouble happened
> > to allow a quick retry. Therefore, it would be nice to add an option to
> > make pgbench exit instead of continuing run in other clients when any
> > client is aborted. I think adding the optional is better than  whole
> > behavioural change because some users that use pgbench just in order
> > to stress on backends for testing purpose rather than benchmark might
> > not want to stop pgbench even a client is aborted. 
> > 
> > Attached is the patch to add the option --exit-on-abort.
> > If this option is specified, when any client is aborted, pgbench
> > immediately quit by calling exit(2).
> > 
> > What do you think about it?
> 
> I think aborting pgbench by calling exit(2) is enough. It's not worth
> the trouble to add more codes for this purpose.

In order to stop pgbench more gracefully, it might be better to make
each thread exit at more proper timing after some cleaning-up like
connection close. However, pgbench code doesn't provide such functions
for inter-threads communication. If we would try to make this, both
pthread and Windows versions would be needed. I don't think it is necessary
to make such effort for --exit-on-abort option, as you said.

Regards,
Yugo Nagata

> 
> Best reagards,
> --
> Tatsuo Ishii
> SRA OSS LLC
> English: http://www.sraoss.co.jp/index_en/
> Japanese:http://www.sraoss.co.jp


-- 
Yugo NAGATA <nagata@sraoss.co.jp>



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Sync scan & regression tests
Следующее
От: Yugo NAGATA
Дата:
Сообщение: Re: pgbench: allow to exit immediately when any client is aborted