PostgreSQL QPS 計數器extension實現
一、背景
實現QPS counter的原因,是為了PG也能夠有類似MySQL 那樣的 "Com_select,Com_update,Com_delete,Com_update" 計數器,方便計算QPS,TPS。
因為PG在原始碼級別並沒有實現這一功能,另外update,delete,insert的次數也需要透過計算,不斷查詢檢視而得到,並不是十分方便。
二、extension實現
為什麼要以擴充套件的方式來實現QPS計數功能?原先我已經以patch方式實現,但是對原始碼改動比較多。後面經過考慮還是以extension擴充套件的方式來實現,
這樣子對原始碼的侵入比較少。另外PG對extension模式的支援也非常到位。
以下是部分原始碼:
Counter結構體,用來全域性儲存計數器:
統計資訊的磁碟儲存:
原始碼:
pg_qps_counter.stat為磁碟持久化計算器儲存。
”8418 000f“為當前select總次數,16進製表示。
登入PG後,查詢:
展示結果,紅色部分就是原始碼實現的結果。從此PG計算QPS,TPS不再難:
有興趣的同學可以給我留言。一起加入PostgreSQL原始碼開發。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30088583/viewspace-1467961/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PostgreSQL DBA(133) - Extension(postgresql_anonymizer)SQL
- PostgreSQL DBA(150) - Extension(pgmetrics)SQL
- PostgreSQL DBA(184) - Extension(hypoPG)SQL
- PostgreSQL編寫自定義extensionSQL
- PostgreSQL DBA(83) - Extension(pg_buffercache)SQL
- PostgreSQL DBA(84) - Extension(pg_prewarm)SQL
- PostgreSQL DBA(72) - Extension(pgplsql_check)SQL
- PostgreSQL DBA(162) - Extension(pg_catcheck)SQL
- PostgreSQL DBA(134) - Extension(auto_explain)SQLAI
- PostgreSQL DBA(130) - Extension(pgsql-gzip)SQL
- PostgreSQL DBA(63) - Extension(pg_qualstats)SQL
- PostgreSQL DBA(163) - Extension(pg_cron)SQL
- Redux實現組合計數器Redux
- PostgreSQL DBA(129) - Extension(pg_variables).mdSQL
- PostgreSQL DBA(63) - Extension(pg_stat_statements)SQL
- Composition實現科學文字計數器
- Flutter倒數計時/計時器的實現Flutter
- 計數器方式實現非同步併發非同步
- 利用Redis實現高併發計數器Redis
- Spring Boot實現資料訪問計數器Spring Boot
- Jmeter——迴圈控制器中實現Counter計數器的次數重置JMeter
- 如何實現Redis裡的自增ID計數器Redis
- 在react中使用redux並實現計數器案例ReactRedux
- JS實現對數器JS
- MySQL實時計算QPS,TPS的SHELL指令碼兩例MySql指令碼
- 計數排序 -- GoLang實現排序Golang
- Golang的滑動視窗計數器Redis限速實現GolangRedis
- C++實現以秒為單位的計數器C++
- 使用 React+TypeScript+Firebase 實現的 Chrome Extension 總結ReactTypeScriptChrome
- 【轉】QPS和併發數的關係
- 6.1.初識Flutter應用之實現一個計數器Flutter
- 利用 C++ 11 特性實現多執行緒計數器C++執行緒
- Java引用計數與實現Java
- 【Java 8實戰】Extension MethodsJava
- Unity——計時器功能實現Unity
- PostgreSQL LIST分割槽實現:繼承表+函式+觸發器。SQL繼承函式觸發器
- postgresql 按小時分表(含觸發器)的實現方式SQL觸發器
- PostgreSQL改元資訊實現invalidindexSQLIndex
- js中windows的函式(隨機數,計時器的實現)JSWindows函式隨機