From 2ea748699ef86190264dccdd46bdb34b8631ae99 Mon Sep 17 00:00:00 2001 From: mbandic Date: Tue, 26 Sep 2023 09:40:35 +0000 Subject: [PATCH] Work on connection pool support in mySQL --- .vscode/settings.json | 13 ++- lib/mysql.hpp | 46 +++------ src/mysql.cpp | 232 +++++++++++++++++++++++++----------------- test/compile.sh | 2 +- test/test.cpp | 122 ++++++++++++++-------- test/test.o | Bin 104544 -> 131072 bytes 6 files changed, 247 insertions(+), 168 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 5ecea1e..90ab211 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -4,6 +4,17 @@ "vector": "cpp", "deque": "cpp", "ostream": "cpp", - "future": "cpp" + "future": "cpp", + "optional": "cpp", + "array": "cpp", + "string_view": "cpp", + "initializer_list": "cpp", + "utility": "cpp", + "mutex": "cpp", + "iostream": "cpp", + "*.tcc": "cpp", + "fstream": "cpp", + "new": "cpp", + "thread": "cpp" } } \ No newline at end of file diff --git a/lib/mysql.hpp b/lib/mysql.hpp index 9b3ca03..ee61078 100644 --- a/lib/mysql.hpp +++ b/lib/mysql.hpp @@ -51,6 +51,8 @@ class sqlQA { sqlQA& set(const string _column_value_pairs); sqlQA& deleteFrom(const string _table); + void print(bool withDetail = false); + // answer methods private: @@ -62,49 +64,29 @@ class mySQL { mutex io; MySQL_Driver *drv; // Connection *con; - vector con; + // vector con; + vector> con; string path, username, password, db; bool isPersistent; uint numOfCon; uint reconTrys = 3; mySQL(const string _path, const string _username, const string _password, const string _db, const bool _isPersistent = false, const uint _numOfCon = 1); - bool open(const string _db = "", const int con_idx = -1); - bool connect(const int con_idx = -1); + bool open(const string _db = ""); + bool connect(); bool disconnect(); void reconnectTrys(const uint _trys); void exec(sqlQA &sql_qa); - void getColumns(const string _table, vector &_columns); - ~mySQL(); -}; - -// class mySQLPool { -// public: - -// struct Drop { -// mySQL* instance; -// bool used = false; -// }; - -// struct Swimmer { -// thread instance; -// bool used = false; -// }; + void getColumns(const string _table, vector &_columns, Connection *ptr_con); // privatno -// mutex io; -// uint maxpools = 0; -// vector droplets; -// bool fixServer = false; -// bool fixScheme = false; -// vector swimmers; + // ove će biti privatne sigurno + bool open_one(Connection *ptr_con); + bool connect_one(Connection *ptr_con); + bool disconnect_one(Connection *ptr_con); + pair findFreeCon(); -// mySQLPool(const uint _maxpools); -// mySQLPool(const uint _maxpools, const string _path, const string _username, const string _password, const string _db); - -// void exec(sqlQA &sql_qa, const string _db = ""); - - -// }; + ~mySQL(); +}; #endif \ No newline at end of file diff --git a/src/mysql.cpp b/src/mysql.cpp index 7ba1e99..b30de26 100644 --- a/src/mysql.cpp +++ b/src/mysql.cpp @@ -59,6 +59,21 @@ sqlQA& sqlQA::deleteFrom(const string _table) { return *this; } +void sqlQA::print(bool withDetail) { + // istražit da se prikaže u tabeli + for (auto i : result) { + for (auto j: i.second) { + cout << i.first << " : " << j << endl; + } + } + + if (withDetail) { + cout << "Is executed: " << (executed ? "true" : "false") << endl; + cout << "Update catch: " << updateCatch << endl; + cout << "Num of rows: " << num_rows << endl; + cout << "Num of columns: " << num_columns << endl; + } +} void sqlQA::parse_columns(const string _columns) { istringstream iss(_columns); @@ -82,6 +97,8 @@ mySQL::mySQL(const string _path, const string _username, const string _password, isPersistent = _numOfCon > 1 ? true : _isPersistent; numOfCon = _numOfCon; + cout << "Num of con: " << numOfCon << endl; + drv = get_mysql_driver_instance(); if (isPersistent) { @@ -98,56 +115,58 @@ mySQL::mySQL(const string _path, const string _username, const string _password, } -bool mySQL::open(const string _db, const int con_idx) { +bool mySQL::open(const string _db) { io.lock(); db = _db.empty() ? db : _db; bool status = true; // ako true greška je for (uint i=0; isetSchema(db); + con[i].second->setSchema(db); status = false; - io.unlock(); } catch (const SQLException &error) { cout << error.what() << endl; - io.unlock(); } - con_idx != -1 ? i = con.size() : i; + } - + + io.unlock(); return status; } -bool mySQL::connect(const int con_idx) { +bool mySQL::connect() { io.lock(); - uint trys = 0; - bool status = true; + // uint trys = 0; + // bool status = true; + bool Gstatus = true; for (uint i=0; iconnect(path, username, password)); - } - else { - con[i] = drv->connect(path, username, password); - } + con.push_back(make_pair(new mutex, drv->connect(path, username, password))); + // con[i].first = new mutex; + // con[i].second = drv->connect(path, username, password); status = false; - io.unlock(); + Gstatus *= status; } catch (const SQLException &error) { cout << error.what() << endl; usleep(reconnectSleep); - reconTrys == 0 ? trys : trys++; - io.unlock(); - } + reconTrys == unlimited ? trys : trys++; + } } } - return status; + cout << "Num of pairs " << con.size() << endl; + + io.unlock(); + // return status; + return Gstatus; } bool mySQL::disconnect() { @@ -155,16 +174,14 @@ bool mySQL::disconnect() { bool status = true; for (uint i=0; iisValid() && !con[i]->isClosed()) { + if (con[i].second->isValid() && !con[i].second->isClosed()) { try { - con[i]->close(); + con[i].second->close(); status = false; - io.unlock(); } catch (const SQLException &error) { cout << error.what() << endl; status = true; - io.unlock(); } } @@ -173,6 +190,61 @@ bool mySQL::disconnect() { } } + io.unlock(); + return status; +} + +bool mySQL::disconnect_one(Connection *ptr_con) { + bool status = true; + + if (ptr_con->isValid() && !ptr_con->isClosed()) { + try { + ptr_con->close(); + status = false; + } + catch (const SQLException &error) { + cout << error.what() << endl; + status = true; + } + } + + else { + status = false; // već je zatvorena + } + + return status; +} + +bool mySQL::connect_one(Connection *ptr_con) { + uint trys = 0; + bool status = true; + + while (reconTrys == unlimited ? status : (trys < reconTrys && status)) { + try { + ptr_con = drv->connect(path, username, password); + status = false; + } + catch (const SQLException &error) { + cout << error.what() << endl; + usleep(reconnectSleep); + reconTrys == unlimited ? trys : trys++; + } + } + + return status; +} + +bool mySQL::open_one(Connection *ptr_con) { + bool status = true; // ako true greška je + + try { + ptr_con->setSchema(db); + status = false; + } + catch (const SQLException &error) { + cout << error.what() << endl; + } + return status; } @@ -188,31 +260,28 @@ void mySQL::reconnectTrys(const uint _trys) { void mySQL::exec(sqlQA &sql_qa) { - for (uint i=0; iisValid() || con[i]->isClosed()) { - if (connect(i)) { - throw string("[ERROR] Unable to connect database "); - } + pair workCon = findFreeCon(); - if (open(i)) { - throw string("[ERROR] Unable to open database " + db); - } + if (!isPersistent || !workCon.second->isValid() || workCon.second->isClosed()) { + if (connect_one(workCon.second)) { + throw string("[ERROR] Unable to connect database "); } - } - // find free connection + if (open_one(workCon.second)) { + throw string("[ERROR] Unable to open database " + db); + } + } - io.lock(); /**/ try { vector columns = sql_qa.columns; if (columns.empty() && !sql_qa.table.empty()) { - getColumns(sql_qa.table, columns); + getColumns(sql_qa.table, columns, workCon.second); } Statement *stmt; - stmt = con->createStatement(); + stmt = workCon.second->createStatement(); if (sql_qa.isSelect) { ResultSet *res = stmt->executeQuery(sql_qa.cmd); @@ -225,6 +294,7 @@ void mySQL::exec(sqlQA &sql_qa) { } } + res->close(); delete res; sql_qa.num_columns = columns.size(); sql_qa.num_rows = num_raw_columns/columns.size(); @@ -239,32 +309,33 @@ void mySQL::exec(sqlQA &sql_qa) { sql_qa.executed = stmt->execute(sql_qa.cmd); } + stmt->close(); delete stmt; - io.unlock(); } catch (const SQLException &error) { cout << error.what() << endl; sql_qa.executed = false; - io.unlock(); } catch (const string error) { + workCon.first->unlock(); throw error; - io.unlock(); } /**/ if (!isPersistent) { - if(disconnect()) { + if(disconnect_one(workCon.second)) { throw string("[ERROR] Unable to close database "); } } + workCon.first->unlock(); + } -void mySQL::getColumns(const string _table, vector &_columns) { +void mySQL::getColumns(const string _table, vector &_columns, Connection *ptr_con) { Statement *stmt; - stmt = con->createStatement(); + stmt = ptr_con->createStatement(); ResultSet *columnsRes = stmt->executeQuery("SHOW COLUMNS from " + _table); @@ -272,59 +343,32 @@ void mySQL::getColumns(const string _table, vector &_columns) { _columns.push_back(columnsRes->getString("Field")); } + columnsRes->close(); + stmt->close(); delete columnsRes; delete stmt; } +pair mySQL::findFreeCon() { + io.lock(); + while (true) { + cout << "Tražim konekciju " << endl; + for (uint i=0; itry_lock()) { + cout << "Koristim " << i << " konekciju" << endl; + io.unlock(); + return con[i]; + } + // else { + // usleep(1000); + // } + } + } +} + mySQL::~mySQL() { if(disconnect()) { throw string("[ERROR] Unable to close database "); } -} - -// mySQLPool::mySQLPool(const uint _maxpools) { -// maxpools = _maxpools; -// fixServer = false; -// fixScheme = true; -// } - -// mySQLPool::mySQLPool(const uint _maxpools, const string _path, const string _username, const string _password, const string _db) { -// maxpools = _maxpools; -// fixServer = true; -// fixScheme = !_db.empty(); -// for (uint i=0; iexec(sql_qa); -// }); -// swimmers[i].instance.join(); -// swimmers[i].used = false; -// isRunned = true; -// } -// } -// } -// droplets[i].used = false; -// } -// } - -// } +} \ No newline at end of file diff --git a/test/compile.sh b/test/compile.sh index 42fa51e..b71c1b3 100644 --- a/test/compile.sh +++ b/test/compile.sh @@ -1 +1 @@ -g++ test.cpp ../src/* -o test.o -lmysqlcppconn \ No newline at end of file +g++ test.cpp ../src/* -o test.o -lmysqlcppconn -lpthread \ No newline at end of file diff --git a/test/test.cpp b/test/test.cpp index 283e24b..28d1bfa 100644 --- a/test/test.cpp +++ b/test/test.cpp @@ -1,53 +1,95 @@ #include +#include +#include #include "../lib/mysql.hpp" using namespace std; +using namespace chrono; int main() { - - mySQL mydb("tcp://192.168.2.10:3306", "dinio", "H€r5elfInd1aH@nds", "dinio", true); - try { - - sqlQA test_qa; - // id,user_id,zone_id,domain,record_type,auth_key,last_update,enabled - // test_qa.select().from("records").where("enabled = 0").limit(2); - // mydb.exec(test_qa); - - // for (auto i : test_qa.result) { - // for (auto j: i.second) { - // cout << i.first << " : " << j << endl; + mySQL mydb("tcp://92.240.56.92:3306", "dinio", "H€r5elfInd1aH@nds", "dinio", true, 2); + + auto start = high_resolution_clock::now(); + + // thread t1([&](){ + // try { + // sqlQA test_qa; + // test_qa.select().from("records").where("enabled = 1"); + // mydb.exec(test_qa); + // test_qa.print(true); + // } catch (const string err) { + // cout << err << endl; // } - // } - - - // test_qa.update("records").set("enabled = 1").where("domain = 'bitelex.test'"); - // mydb.exec(test_qa); - // if (test_qa.executed) { - // cout << "Num rows affect " << test_qa.updateCatch << endl; - // } - - // cout << "Num rows " << test_qa.num_rows << " num columns " << test_qa.num_columns << " executed " << test_qa.executed << endl; - - - // test_qa.insertInTo("records", "id,user_id,zone_id,domain,record_type,auth_key,last_update,enabled").values("'5',2,2,'www.bitelex.test','AAAA','jebiga',NULL,1"); - test_qa.deleteFrom("records").where("record_type = AAAA"); - // test_qa.update("records").set("enabled = 0").where("record_type = 'AAAA'"); - cout << test_qa.cmd << endl; - mydb.exec(test_qa); - cout << "Num rows " << test_qa.num_rows << " num columns " << test_qa.num_columns << " catch " << test_qa.updateCatch << " executed " << test_qa.executed << endl; - - - - } - catch (const SQLException error) { + // }); + + // thread t2([&](){ + // try { + // sqlQA test_qa; + // test_qa.select().from("zones"); + // mydb.exec(test_qa); + // test_qa.print(true); + // } catch (const string err) { + // cout << err << endl; + // } + // }); + + // thread t3([&](){ + // try { + // sqlQA test_qa; + // test_qa.select().from("users"); + // mydb.exec(test_qa); + // test_qa.print(true); + // } catch (const string err) { + // cout << err << endl; + // } + // }); + + + // t1.join(); + // t2.join(); + // t3.join(); + + // one by one + try { + sqlQA test_qa; + test_qa.select().from("records").where("enabled = 1"); + mydb.exec(test_qa); + test_qa.print(true); + } catch (const string err) { + cout << err << endl; + } + + try { + sqlQA test_qa; + test_qa.select().from("users"); + mydb.exec(test_qa); + test_qa.print(true); + } catch (const string err) { + cout << err << endl; + } + + try { + sqlQA test_qa; + test_qa.select().from("users"); + mydb.exec(test_qa); + test_qa.print(true); + } catch (const string err) { + cout << err << endl; + } + + + auto end = high_resolution_clock::now(); + auto duration = duration_cast(end - start); + cout << "-------------Izvršilo se za: " << (double)(duration.count() / 1000.0) << endl; + + + } catch (const SQLException error) { cout << error.what() << endl; - } - // catch (const string error) { - // cout << error << endl; - // } - catch (...) { + } catch (const string error) { + cout << error << endl; + } catch (...) { cout << "Jebi ga" << endl; } diff --git a/test/test.o b/test/test.o index f6f49678d30c1c1d5782e452e9d615384be374d0..9ef803ed15c5f7b50331ce1fc5fb03543f2309a2 100755 GIT binary patch literal 131072 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 literal 104544 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�S;FqfYTa+Y*e{ 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

$0+TaE<2U_ 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