[發明專利]數據庫的請求處理方法和裝置、電子設備和介質在審
| 申請號: | 202011085680.3 | 申請日: | 2020-10-12 |
| 公開(公告)號: | CN112346834A | 公開(公告)日: | 2021-02-09 |
| 發明(設計)人: | 干榮亮 | 申請(專利權)人: | 北京金山云網絡技術有限公司 |
| 主分類號: | G06F9/48 | 分類號: | G06F9/48 |
| 代理公司: | 北京博遵律師事務所 11761 | 代理人: | 馬佑平 |
| 地址: | 100085 北京市海淀*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 數據庫 請求 處理 方法 裝置 電子設備 介質 | ||
本公開的實施例涉及數據庫的請求處理方法和裝置、電子設備和計算機可讀存儲介質。所述方法包括:接收客戶端的操作請求;按照預設的規則,根據所述操作請求和所述操作請求所屬事務的提交模式確定所述操作請求的優先級;根據所述操作請求的優先級,將所述操作請求加入至線程池的對應優先級的任務隊列中;根據所述任務隊列的優先級,從所述任務隊列中獲取任務進行處理。本公開實施例的數據庫的請求處理方法、電子設備和介質,可以在操作請求這一級別自動進行任務優先級劃分,有利于提升高并發場景下的處理性能。
技術領域
本公開涉及計算機技術領域,更具體地,涉及數據庫的請求處理方法和裝置、電子設備和介質。
背景技術
在計算機技術不斷發展的今天,處理計算機運行任務的線程相關的技術在不斷的突破和發展。早先,數據庫的線程默認處理方式是one-thread-per-connection,即針對每個連接(connection)創建一個線程(thread)來處理這個連接的所有請求,直到連接斷開,在高并發場景下,這種方式會產生過多的線程會導致頻繁的上下文切換,其性能會明顯下降。如今,線程池已經成為一種常用技術,應用于云數據庫服務中。線程池技術是通過預先創建一定數量的線程,當有請求達到時,線程池分配一個線程提供服務,請求結束后,該線程又去服務其他請求。通過這種方式,避免了線程和內存對象的頻繁創建和釋放,提高資源利用效率。但是,在高并發場景下仍然有可能會出現線程阻塞,導致處理性能下降。因此,有必要提供一種數據庫的請求處理方案,能夠保證系統的處理性能。
發明內容
本公開的一個目的是提供數據庫的請求處理方法和裝置、電子設備和介質。
根據本公開的實施例的第一方面,提供了一種數據庫的請求處理方法,包括:
接收客戶端的操作請求;
按照預設的規則,根據所述操作請求和所述操作請求所屬事務的提交模式確定所述操作請求的優先級;
根據所述操作請求的優先級,將所述操作請求加入至線程池的對應優先級的任務隊列中;
根據所述任務隊列的優先級,從所述任務隊列中獲取任務進行處理。
可選地,所述按照預設的規則,根據所述操作請求和所述操作請求所屬事務的提交模式確定所述操作請求的優先級,包括:
如果所述操作請求所屬事務的提交模式為顯式提交模式,確定所述操作請求的優先級為高優先級;
如果所述操作請求所屬事務的提交模式為非顯式提交模式并且所述操作請求的操作對象是系統庫表,確定所述操作請求的優先級為高優先級;
如果所述操作請求所屬事務的提交模式為非顯式提交模式并且所述操作請求不涉及對庫表的更改,確定所述操作請求的優先級為高優先級。
可選地,所述方法還包括:
接收客戶端的連接請求;
確定所述連接請求的發送端口是否為預設端口;
在所述連接請求的發送端口是預設端口的情況下,創建獨立于所述線程池之外的工作線程為發送所述連接請求的客戶端提供服務;
在所述連接請求的發送端口不是預設端口的情況下,建立發送所述連接請求的客戶端與所述線程池的連接。
可選地,所述方法還包括:
獲取所述線程池中的總任務數;
在所述線程池中的總任務數大于等于第一閾值時,喚醒處于休眠狀態的工作線程。
可選地,所述方法還包括:
確定與所述線程池連接的客戶端的數量;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京金山云網絡技術有限公司,未經北京金山云網絡技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011085680.3/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:五位置換擋器的位置檢測方法、裝置及相關設備
- 下一篇:一種自動壓軸機





