X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fsrc%2Fcommon%2Fobj_bencher.h;fp=src%2Fceph%2Fsrc%2Fcommon%2Fobj_bencher.h;h=0000000000000000000000000000000000000000;hb=7da45d65be36d36b880cc55c5036e96c24b53f00;hp=8dad8e6ddf9c53fe9dc3e60b2b10f490aa933887;hpb=691462d09d0987b47e112d6ee8740375df3c51b2;p=stor4nfv.git diff --git a/src/ceph/src/common/obj_bencher.h b/src/ceph/src/common/obj_bencher.h deleted file mode 100644 index 8dad8e6..0000000 --- a/src/ceph/src/common/obj_bencher.h +++ /dev/null @@ -1,128 +0,0 @@ -// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- -// vim: ts=8 sw=2 smarttab -/* - * Ceph - scalable distributed file system - * - * Copyright (C) 2009 Sage Weil - * - * This is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License version 2.1, as published by the Free Software - * Foundation. See file COPYING. - * - */ - -#ifndef CEPH_OBJ_BENCHER_H -#define CEPH_OBJ_BENCHER_H - -#include "common/ceph_context.h" -#include "common/Formatter.h" -#include - -struct bench_interval_data { - double min_bandwidth = DBL_MAX; - double max_bandwidth = 0; - int min_iops = INT_MAX; - int max_iops = 0; -}; - -struct bench_history { - vector bandwidth; - vector latency; - vector iops; -}; - -struct bench_data { - bool done; //is the benchmark is done - uint64_t object_size; //the size of the objects - uint64_t op_size; // the size of the read/write ops - bool hints; - // same as object_size for write tests - int in_flight; //number of reads/writes being waited on - int started; - int finished; - double min_latency; - double max_latency; - double avg_latency; - struct bench_interval_data idata; // data that is updated by time intervals and not by events - struct bench_history history; // data history, used to calculate stddev - utime_t cur_latency; //latency of last completed transaction - utime_t start_time; //start time for benchmark - char *object_contents; //pointer to the contents written to each object -}; - -const int OP_WRITE = 1; -const int OP_SEQ_READ = 2; -const int OP_RAND_READ = 3; - -// Object is composed of -typedef std::pair Object; - -class ObjBencher { - bool show_time; - Formatter *formatter = NULL; - ostream *outstream = NULL; -public: - CephContext *cct; -protected: - Mutex lock; - - static void *status_printer(void *bencher); - - struct bench_data data; - - int fetch_bench_metadata(const std::string& metadata_file, uint64_t* op_size, - uint64_t* object_size, int* num_objects, int* prevPid); - - int write_bench(int secondsToRun, int concurrentios, const string& run_name_meta, unsigned max_objects); - int seq_read_bench(int secondsToRun, int num_objects, int concurrentios, int writePid, bool no_verify=false); - int rand_read_bench(int secondsToRun, int num_objects, int concurrentios, int writePid, bool no_verify=false); - - int clean_up(int num_objects, int prevPid, int concurrentios); - bool more_objects_matching_prefix(const std::string& prefix, std::list* name); - - virtual int completions_init(int concurrentios) = 0; - virtual void completions_done() = 0; - - virtual int create_completion(int i, void (*cb)(void *, void*), void *arg) = 0; - virtual void release_completion(int slot) = 0; - - virtual bool completion_is_done(int slot) = 0; - virtual int completion_wait(int slot) = 0; - virtual int completion_ret(int slot) = 0; - - virtual int aio_read(const std::string& oid, int slot, bufferlist *pbl, size_t len, size_t offset) = 0; - virtual int aio_write(const std::string& oid, int slot, bufferlist& bl, size_t len, size_t offset) = 0; - virtual int aio_remove(const std::string& oid, int slot) = 0; - virtual int sync_read(const std::string& oid, bufferlist& bl, size_t len) = 0; - virtual int sync_write(const std::string& oid, bufferlist& bl, size_t len) = 0; - virtual int sync_remove(const std::string& oid) = 0; - - virtual bool get_objects(std::list< std::pair >* objects, int num) = 0; - virtual void set_namespace(const std::string&) {} - - ostream& out(ostream& os); - ostream& out(ostream& os, utime_t& t); -public: - explicit ObjBencher(CephContext *cct_) : show_time(false), cct(cct_), lock("ObjBencher::lock") {} - virtual ~ObjBencher() {} - int aio_bench( - int operation, int secondsToRun, - int concurrentios, uint64_t op_size, uint64_t object_size, unsigned max_objects, - bool cleanup, bool hints, const std::string& run_name, bool no_verify=false); - int clean_up(const std::string& prefix, int concurrentios, const std::string& run_name); - - void set_show_time(bool dt) { - show_time = dt; - } - void set_formatter(Formatter *f) { - formatter = f; - } - void set_outstream(ostream& os) { - outstream = &os; - } - int clean_up_slow(const std::string& prefix, int concurrentios); -}; - - -#endif