BlueSkyStoreAsync *barrier;
bluesky_time_hires start_time; /* Time operation was submitted. */
+ bluesky_time_hires exec_time; /* Time processing started on operation. */
gpointer store_private; /* For use by the storage implementation */
};
S3Store *store = (S3Store *)s;
async->status = ASYNC_RUNNING;
+ async->exec_time = bluesky_now_hires();
if (async->op == STORE_OP_GET) {
struct get_info info;
g_return_if_fail(async->status != ASYNC_COMPLETE);
bluesky_time_hires elapsed = bluesky_now_hires() - async->start_time;
+ bluesky_time_hires latency = bluesky_now_hires() - async->exec_time;
g_mutex_lock(async->store->lock);
async->store->pending--;
}
g_log("bluesky/store", G_LOG_LEVEL_DEBUG,
- "[%p] complete: elapsed = %"PRIi64" ns",
- async, elapsed);
+ "[%p] complete: elapsed = %"PRIi64" ns, latency = %"PRIi64" ns",
+ async, elapsed, latency);
}
void bluesky_store_async_submit(BlueSkyStoreAsync *async)
async->start_time = bluesky_now_hires();
+ // Backends should fill this in with a better estimate of the actual time
+ // processing was started, if there could be a delay from submission time.
+ async->exec_time = bluesky_now_hires();
+
g_log("bluesky/store", G_LOG_LEVEL_DEBUG, "[%p] submit: %s %s",
async,
async->op == STORE_OP_GET ? "GET"