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 | 20230807112600.43100dbea404d15d0afc51bb@sraoss.co.jp обсуждение исходный текст |
Ответ на | Re: pgbench: allow to exit immediately when any client is aborted (Yugo NAGATA <nagata@sraoss.co.jp>) |
Ответы |
Re: pgbench: allow to exit immediately when any client is aborted
|
Список | pgsql-hackers |
On Mon, 7 Aug 2023 11:02:48 +0900 Yugo NAGATA <nagata@sraoss.co.jp> wrote: > 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). I attached v2 patch including the documentation and some comments in the code. Regards, Yugo Nagata > > > > > > 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> > > -- Yugo NAGATA <nagata@sraoss.co.jp>
Вложения
В списке pgsql-hackers по дате отправления: