|
Vlad Khorsun made changes - 29/May/14 07:29 AM
Vlad Khorsun made changes - 29/May/14 07:29 AM
Vlad Khorsun made changes - 29/May/14 07:32 AM
Vlad Khorsun made changes - 29/May/14 07:36 AM
Vlad Khorsun made changes - 29/May/14 07:44 AM
In short: added ability to use fallocate()
No so short: Firebird used pre-allocation of disk space when it decides to extend database file. It could be done in a few ways a) write zero's at the end of file page by page (very slow) b) write zero's at the end of file using relatively big chunk (faster) c) use OS\FS services to reserve space for a given file (fastest) On Windows we already using (c) : SetEndOfFile does what we need. But on Posix there was no such system call at that time, so (b) was used. Now fallocate() is supported by most Linux cores and file systems (yes, it requres explicit support by file system). Therefore we implemented ability to use fallocate() and handle case when call is not supported by file system (in this case (b) will be used as before).
Vlad Khorsun made changes - 12/Jun/14 07:19 AM
Pavel Zotov made changes - 03/Jun/15 05:33 PM
Pavel Cisar made changes - 23/Sep/15 12:19 PM
|
Some details for this case are really appropriate.