18 #ifndef PDB_STATISTICS_H
19 #define PDB_STATISTICS_H
23 #include <unordered_map>
59 void removeSet(std::string databaseName, std::string setName) {
60 std::string key = databaseName +
":" + setName;
67 std::string key = databaseName +
":" + setName;
80 std::string aliasDatabase,
81 std::string aliasSetName){
82 std::string key = databaseName +
":" + setName;
83 std::string aliasKey = aliasDatabase +
":" + aliasSetName;
88 int getNumPages(std::string databaseName, std::string setName) {
89 std::string key = databaseName +
":" + setName;
98 void setNumPages(std::string databaseName, std::string setName,
100 std::string key = databaseName +
":" + setName;
101 pthread_mutex_lock(&
mutex);
103 pthread_mutex_unlock(&
mutex);
107 size_t getPageSize(std::string databaseName, std::string setName) {
108 std::string key = databaseName +
":" + setName;
119 std::string key = databaseName +
":" + setName;
120 pthread_mutex_lock(&
mutex);
122 pthread_mutex_unlock(&
mutex);
126 size_t getNumBytes(std::string databaseName, std::string setName) {
127 std::string key = databaseName +
":" + setName;
137 std::string key = databaseName +
":" + setName;
138 pthread_mutex_lock(&
mutex);
140 pthread_mutex_unlock(&
mutex);
145 std::string key = databaseName +
":" + setName;
146 pthread_mutex_lock(&
mutex);
148 pthread_mutex_unlock(&
mutex);
154 std::string key = databaseName +
":" + setName;
155 pthread_mutex_lock(&
mutex);
157 pthread_mutex_unlock(&
mutex);
162 std::string key = databaseName +
":" + setName;
173 std::string key = databaseName +
":" + setName;
174 pthread_mutex_lock(&
mutex);
176 pthread_mutex_unlock(&
mutex);
181 std::string key = databaseName +
":" + setName;
191 size_t avgTupleSize) {
192 std::string key = databaseName +
":" + setName;
193 pthread_mutex_lock(&
mutex);
195 pthread_mutex_unlock(&
mutex);
209 double selectivity) {
210 pthread_mutex_lock(&
mutex);
212 pthread_mutex_unlock(&
mutex);
226 pthread_mutex_lock(&
mutex);
228 pthread_mutex_unlock(&
mutex);
237 std::cout <<
"----------- STATS ------------" << std::endl;
241 std::cout << it.first << std::endl;
242 std::cout <<
"------------------------------" << std::endl;
std::shared_ptr< Statistics > StatisticsPtr
void setNumTuples(std::string databaseName, std::string setName, int numTuples)
void setNumBytes(std::string databaseName, std::string setName, size_t numBytes)
int getNumTuples(std::string databaseName, std::string setName)
void removeSet(std::string databaseName, std::string setName)
double getLambdaSelectivity(std::string lambdaType)
size_t getAvgTupleSize(std::string databaseName, std::string setName)
int getNumPages(std::string databaseName, std::string setName)
void setNumPages(std::string databaseName, std::string setName, int numPages)
void setAvgTupleSize(std::string databaseName, std::string setName, size_t avgTupleSize)
void setPageSize(std::string databaseName, std::string setName, size_t pageSize)
void addSetAlias(std::string databaseName, std::string setName, std::string aliasDatabase, std::string aliasSetName)
std::unordered_map< std::string, double > atomicComputationSelectivity
size_t getPageSize(std::string databaseName, std::string setName)
void incrementNumPages(std::string databaseName, std::string setName, size_t numPages)
void setLambdaSelectivity(std::string lambdaType, double selectivity)
void incrementNumBytes(std::string databaseName, std::string setName, size_t numBytes)
size_t getNumBytes(std::string databaseName, std::string setName)
void setAtomicComputationSelectivity(std::string atomicComputationType, double selectivity)
double getAtomicComputationSelectivity(std::string atomicComputationType)
std::unordered_map< std::string, DataStatistics > dataStatistics
std::unordered_map< std::string, double > lambdaSelectivity
void addSet(std::string databaseName, std::string setName, DataStatistics &stats)