X-Git-Url: http://git.vrable.net/?a=blobdiff_plain;f=bluesky%2Fbluesky.h;h=874027f32bd82974b775e4f966ad5f666aaa871e;hb=81fe3470ff3b9d4d1143fcdfca8bb7b8ace70b51;hp=6bbf4a2cbd9666c2431bbb800a2c55165563fe51;hpb=88821fe897cbb8b0d83785551fbb4787b1e74c66;p=bluesky.git diff --git a/bluesky/bluesky.h b/bluesky/bluesky.h index 6bbf4a2..874027f 100644 --- a/bluesky/bluesky.h +++ b/bluesky/bluesky.h @@ -10,6 +10,7 @@ #define _BLUESKY_H #include +#include #include #include @@ -19,10 +20,10 @@ extern "C" { /* Various options to tweak for performance benchmarking purposes. */ typedef struct { - /* Perform all get/put operations synchronously. */ + /* OBSOLETE: Perform all get/put operations synchronously. */ int synchronous_stores; - /* Write data in cache immediately after file is modified. */ + /* OBSOLETE: Write data in cache immediately after file is modified. */ int writethrough_cache; /* Can inodes be fetched asynchronously? (Inode object is initially @@ -36,6 +37,14 @@ typedef struct { /* Target size of the disk cache at the proxy, in kilobytes. */ int cache_size; + + /* Full segment fetches (1) or use range requests (0) for fetching segments + * from cloud? */ + int full_segment_fetches; + + /* Disable aggregating of data into log segments. Each object will be + * stored in a separate segment. */ + int disable_aggregation; } BlueSkyOptions; extern BlueSkyOptions bluesky_options; @@ -53,6 +62,7 @@ struct bluesky_stats { struct bluesky_stats *bluesky_stats_new(const char *name); void bluesky_stats_add(struct bluesky_stats *stats, int64_t value); void bluesky_stats_dump_all(); +void bluesky_stats_run_periodic_dump(FILE *f); /* BlueSky status and error codes. Various frontends should translate these to * the appropriate error code for whatever protocol they implement. */ @@ -355,6 +365,7 @@ void bluesky_file_read(BlueSkyInode *inode, uint64_t offset, char *buf, gint len); void bluesky_inode_fetch(BlueSkyFS *fs, uint64_t inum); +void bluesky_inode_prefetch(BlueSkyFS *fs, uint64_t inum); gint bluesky_dirent_compare(gconstpointer a, gconstpointer b, gpointer unused); @@ -368,6 +379,8 @@ void bluesky_debug_dump(BlueSkyFS *fs); /* Request response time tracking. */ typedef struct BlueSkyProfile { + int magic; + GMutex *lock; char *description; GList *events; } BlueSkyProfile; @@ -378,6 +391,7 @@ void bluesky_profile_add_event(BlueSkyProfile *profile, char *message); void bluesky_profile_print(BlueSkyProfile *profile); BlueSkyProfile *bluesky_profile_get(); void bluesky_profile_set(BlueSkyProfile *profile); +void bluesky_profile_set_output(FILE *stream); #ifdef __cplusplus }