Re: Use pg_pwritev_with_retry() instead of write() in dir_open_for_write() to avoid partial writes?
От | Andres Freund |
---|---|
Тема | Re: Use pg_pwritev_with_retry() instead of write() in dir_open_for_write() to avoid partial writes? |
Дата | |
Msg-id | 20230212173136.2l3mpuuocgwhnmkx@awork3.anarazel.de обсуждение исходный текст |
Ответ на | Re: Use pg_pwritev_with_retry() instead of write() in dir_open_for_write() to avoid partial writes? (Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>) |
Ответы |
Re: Use pg_pwritev_with_retry() instead of write() in dir_open_for_write() to avoid partial writes?
Re: Use pg_pwritev_with_retry() instead of write() in dir_open_for_write() to avoid partial writes? Re: Use pg_pwritev_with_retry() instead of write() in dir_open_for_write() to avoid partial writes? |
Список | pgsql-hackers |
Hi, On 2023-02-12 19:59:00 +0530, Bharath Rupireddy wrote: > Thanks for looking at it. We know that we don't change the zbuffer in > the function, so can we avoid static const and have just a static > variable, like the attached > v1-0001-Use-static-variable-to-avoid-memset-calls-in-pg_p.patch? Do > you see any problem with it? Making it static const is better, because it allows the memory for the variable to be put in a readonly section. > /* Prepare to write out a lot of copies of our zero buffer at once. */ > for (i = 0; i < lengthof(iov); ++i) > { > - iov[i].iov_base = zbuffer.data; > + iov[i].iov_base = (void *) (unconstify(PGAlignedBlock *, &zbuffer)->data); > iov[i].iov_len = zbuffer_sz; > } Another thing: I think we should either avoid iterating over all the IOVs if we don't need them, or, even better, initialize the array as a constant, once. Greetings, Andres Freund
В списке pgsql-hackers по дате отправления: