mirror of
https://github.com/Zygo/bees.git
synced 2025-09-15 17:42:15 +02:00
bees: drop bees_sync, we will not need it
bees_sync() was an exception-trapping wrapper around fsync() which is not needed in any of the contexts from which it was called: 1. dedupe operations implicitly flush the src data, so there is no need to call fsync() to do that twice. 2. crawl position is written to a temporary file and renamed over the original, which always forces a flush when the original exists. On the first write, where there is no original, a crash would result in starting over with an empty or hole-filled beescrawl file, which is the initial state of bees. There is also a long history of kernel bugs triggered by fsync() in this case. 3. we use unreadahead to trigger writeback for flushing the hash table to persistent storage. Here is a space where we might use fsync after all, as part of bees_unreadahead's emulation of POSIX_FADV_DONTNEED, but we need to get read-once behavior from the scanner before we can use this capability. Signed-off-by: Zygo Blaxell <bees@furryterror.org>
This commit is contained in:
@@ -882,7 +882,6 @@ extern const char *BEES_USAGE;
|
||||
extern const char *BEES_VERSION;
|
||||
extern thread_local default_random_engine bees_generator;
|
||||
string pretty(double d);
|
||||
void bees_sync(int fd);
|
||||
void bees_readahead(int fd, off_t offset, size_t size);
|
||||
void bees_unreadahead(int fd, off_t offset, size_t size);
|
||||
string format_time(time_t t);
|
||||
|
Reference in New Issue
Block a user