Hybrid Query Processing Engine for Coprocessing in Database Systems
HyPE
algorithm_statistics.hpp
Go to the documentation of this file.
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 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines