diff options
author | Simon Rettberg | 2020-03-04 17:49:50 +0100 |
---|---|---|
committer | Simon Rettberg | 2020-03-04 17:49:50 +0100 |
commit | 930b65f26cb39687a113641f56711a2d58f886ca (patch) | |
tree | e0a0c5e73ea9820a4d64641209bde320359c37a2 /src/server/image.h | |
parent | [SERVER] Likewise, get rid of same loops in client handler (diff) | |
download | dnbd3-930b65f26cb39687a113641f56711a2d58f886ca.tar.gz dnbd3-930b65f26cb39687a113641f56711a2d58f886ca.tar.xz dnbd3-930b65f26cb39687a113641f56711a2d58f886ca.zip |
[SERVER] Add timer task for saving cache maps
Cache maps will now be saved periodically, but only if either they have
a "dirty" bit set, which happens if any bits in the map get cleared
again (due to corruption), or if new data has been replicated from an
uplink server. This either means at least one byte received and 5
minutes have passed, or at least 500MB have been downloaded. The timer
currently runs every 20 seconds.
Diffstat (limited to 'src/server/image.h')
-rw-r--r-- | src/server/image.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/server/image.h b/src/server/image.h index 89791fc..4614c74 100644 --- a/src/server/image.h +++ b/src/server/image.h @@ -49,6 +49,8 @@ void image_closeUnusedFd(); bool image_ensureDiskSpaceLocked(uint64_t size, bool force); +bool image_saveCacheMap(dnbd3_image_t *image); + // one byte in the map covers 8 4kib blocks, so 32kib per byte // "+ (1 << 15) - 1" is required to account for the last bit of // the image that is smaller than 32kib |