Hybrid Query Processing Engine for Coprocessing in Database Systems
HyPE
|
00001 /*********************************************************************************************************** 00002 Copyright (c) 2012, Sebastian Breß, Otto-von-Guericke University of Magdeburg, Germany. All rights reserved. 00003 00004 This program and accompanying materials are made available under the terms of the 00005 GNU LESSER GENERAL PUBLIC LICENSE - Version 3, http://www.gnu.org/licenses/lgpl-3.0.txt 00006 ***********************************************************************************************************/ 00007 #pragma once 00008 00009 #include <iostream> 00010 #include <string> 00011 #include <vector> 00012 #include <memory> 00013 00014 00015 //HyPE includes 00016 #include <core/recomputation_heuristic.hpp> 00017 #include <core/time_measurement.hpp> 00018 #include <core/measurementpair.hpp> 00019 #include <core/measurementpair_ringbuffer.hpp> 00020 //Boost includes 00021 #include <boost/utility.hpp> 00022 00023 namespace hype{ 00024 namespace core{ 00025 00026 00044 class AlgorithmStatistics{ // : private boost::noncopyable{ //make AlgorithmStatistics not copyable 00045 00046 public: 00047 00048 //MeasurementPair mp; 00049 //vector<Measurementpair> > executionHistory 00050 00051 AlgorithmStatistics(); 00052 00053 bool writeToDisc(const std::string& operation_name, const std::string& algorithm_name) const; 00054 00055 MeasurementPairRingbuffer executionHistory_; 00056 std::vector<double> relative_errors_; 00057 unsigned int number_of_recomputations_; 00058 unsigned int number_of_decisions_for_this_algorithm_; 00059 double average_relative_error_; 00060 double total_execution_time_; 00061 unsigned int number_of_terminated_executions_of_this_algorithm_; 00062 00063 private: 00064 AlgorithmStatistics(const AlgorithmStatistics&); 00065 AlgorithmStatistics& operator= (const AlgorithmStatistics&); 00066 00067 static void *operator new(size_t size); 00068 static void operator delete(void *ptr); 00069 00070 }; 00071 00072 00073 }; //end namespace core 00074 }; //end namespace hype 00075