BlueSkyCloudPointer location;
GList *inode_list;
GSList *writeback_list; // Items which are being serialized right now
+ GList *pending_segments; // Segments which are being uploaded now
};
gboolean bluesky_cloudlog_equal(gconstpointer a, gconstpointer b);
/* A count of the disk space consumed (in 1024-byte units) by all files
* tracked by mmap_cache (whether mapped or not, actually). */
gint disk_used;
+
+ /* The smallest journal sequence number which may still contain data that
+ * must be preserved (since it it not yet in the cloud). */
+ int journal_watermark;
};
/* An object for tracking log files which are stored locally--either the
int clouddir, int log_seq);
void bluesky_cachefile_gc(BlueSkyFS *fs);
+/* Used to track log segments that are being written to the cloud. */
+typedef struct {
+ BlueSkyRCStr *data;
+ GSList *items;
+ GMutex *lock;
+ GCond *cond;
+ gboolean complete;
+} SerializedRecord;
+
#ifdef __cplusplus
}
#endif