Re: CREATE DATABASE with filesystem cloning
От | Nazir Bilal Yavuz |
---|---|
Тема | Re: CREATE DATABASE with filesystem cloning |
Дата | |
Msg-id | CAN55FZ34ESJiGJ=Jst1278OKtxP89VKxtC7s2u=uLDYZGEKxSQ@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: CREATE DATABASE with filesystem cloning (Thomas Munro <thomas.munro@gmail.com>) |
Ответы |
Re: CREATE DATABASE with filesystem cloning
Re: CREATE DATABASE with filesystem cloning |
Список | pgsql-hackers |
Hi, On Wed, 6 Mar 2024 at 05:17, Thomas Munro <thomas.munro@gmail.com> wrote: > > The main thing that is missing is support for redo. It's mostly > trivial I think, probably just a record type for "try cloning first" > and then teaching that clone function to fall back to the regular copy > path if it fails in recovery, do you agree with that idea? Another > approach would be to let it fail if it doesn't work on the replica, so > you don't finish up using dramatically different amounts of disk > space, but that seems terrible because now your replica is broken. So > probably fallback with logged warning (?), though I'm not sure exactly > which errnos to give that treatment to. We had an off-list talk with Thomas and we thought making this option GUC instead of SQL command level could solve this problem. I am posting a new rebased version of the patch with some important changes: * 'createdb_file_copy_method' GUC is created. Possible values are 'copy' and 'clone'. Copy is the default option. Clone option can be chosen if the system supports it, otherwise it gives error at the startup. * #else part of the clone_file() function calls pg_unreachable() instead of ereport(). * Documentation updates. Also, what should happen when the kernel has clone support but the file system does not? - I tested this on Linux and copy_file_range() silently uses normal copy when this happens. I assume the same thing will happen for FreeBSD because it uses the copy_file_range() function as well. - I am not sure about MacOS since the force flag (COPYFILE_CLONE_FORCE) is used. I do not have MacOS so I can not test it but I assume it will error out when this happens. If that is the case, is this a problem? I am asking that since this is a GUC now, the user will have the full responsibility. Any kind of feedback would be appreciated. -- Regards, Nazir Bilal Yavuz Microsoft
Вложения
В списке pgsql-hackers по дате отправления: