Re: Transaction timeout

Поиск
Список
Период
Сортировка
От Li Japin
Тема Re: Transaction timeout
Дата
Msg-id ME3P282MB31664A5018CEC4782D2DA7DAB69BA@ME3P282MB3166.AUSP282.PROD.OUTLOOK.COM
обсуждение исходный текст
Ответ на Re: Transaction timeout  (Junwang Zhao <zhjwpku@gmail.com>)
Ответы Re: Transaction timeout  ("Andrey M. Borodin" <x4mmm@yandex-team.ru>)
Список pgsql-hackers

> 在 2023年12月23日,11:35,Junwang Zhao <zhjwpku@gmail.com> 写道:
> 
> On Sat, Dec 23, 2023 at 11:17 AM Japin Li <japinli@hotmail.com> wrote:
>> 
>> a
>>> On Sat, 23 Dec 2023 at 10:40, Japin Li <japinli@hotmail.com> wrote:
>>> On Sat, 23 Dec 2023 at 08:32, Japin Li <japinli@hotmail.com> wrote:
>>>> On Fri, 22 Dec 2023 at 23:30, Junwang Zhao <zhjwpku@gmail.com> wrote:
>>>>> On Fri, Dec 22, 2023 at 10:44 PM Japin Li <japinli@hotmail.com> wrote:
>>>>>> 
>>>>>> 
>>>>>> On Fri, 22 Dec 2023 at 22:37, Junwang Zhao <zhjwpku@gmail.com> wrote:
>>>>>>> On Fri, Dec 22, 2023 at 10:25 PM Japin Li <japinli@hotmail.com> wrote:
>>>>>>>> I try to set idle_in_transaction_session_timeout after begin transaction,
>>>>>>>> it changes immediately, so I think transaction_timeout should also be take
>>>>>>>> immediately.
>>>>>>> 
>>>>>>> Ah, right, idle_in_transaction_session_timeout is set after the set
>>>>>>> command finishes and before the backend send *ready for query*
>>>>>>> to the client, so the value of the GUC is already set before
>>>>>>> next command.
>>>>>>> 
>>>>>> 
>>>>>> I mean, is it possible to set transaction_timeout before next comand?
>>>>>> 
>>>>> Yeah, it's possible, set transaction_timeout in the when it first
>>>>> goes into *idle in transaction* mode, see the attached files.
>>>>> 
>>>> 
>>>> Thanks for updating the patch, LGTM.
>>> 
>>> Sorry for the noise!
>>> 
>>> Read the previous threads, I find why the author enable transaction_timeout
>>> in start_xact_command().
>>> 
>>> The v15 patch cannot handle COMMIT AND CHAIN, see [1]. For example:
>>> 
>>> SET transaction_timeout TO '2s'; BEGIN; SELECT 1, pg_sleep(1); COMMIT AND CHAIN; SELECT 2, pg_sleep(1); COMMIT;
>>> 
>>> The transaction_timeout do not reset when executing COMMIT AND CHAIN.
>>> 
>>> [1] https://www.postgresql.org/message-id/a906dea1-76a1-4f26-76c5-a7efad3ef5b8%40oss.nttdata.com
>> 
>> Attach v16 to solve this. Any suggestions?
> 
> I've checked this with *COMMIT AND CHAIN* and *ABORT AND CHAIN*,
> both work as expected. Thanks for the update.
> 

Thanks for your testing and reviewing!

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

Предыдущее
От: Japin Li
Дата:
Сообщение: Re: Fixing pgbench init overflow
Следующее
От: Tatsuo Ishii
Дата:
Сообщение: Re: Fixing pgbench init overflow