X-Git-Url: http://git.vrable.net/?a=blobdiff_plain;f=bluesky%2Fbluesky.h;h=674fa8bc58ac06283c5991dd521df0af074805ae;hb=fed8d93caec822aded82cdd96c783a9ccf156f7b;hp=653adc88bb0233571bf02f2accb2c6fce88b1548;hpb=e9da632729d04d23ae7f4be4c3fcdd7c1c432e85;p=bluesky.git diff --git a/bluesky/bluesky.h b/bluesky/bluesky.h index 653adc8..674fa8b 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,17 @@ 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; + + /* Disable cryptography. This is for benchmarking purposes. */ + int disable_crypto; } BlueSkyOptions; extern BlueSkyOptions bluesky_options; @@ -53,6 +65,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 +368,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 +382,7 @@ void bluesky_debug_dump(BlueSkyFS *fs); /* Request response time tracking. */ typedef struct BlueSkyProfile { + int magic; GMutex *lock; char *description; GList *events; @@ -379,6 +394,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 }