?

高并發網絡身份認證數據庫應用技術研究

2023-12-18 17:25劉冰劉乾坤
警察技術 2023年6期
關鍵詞:鍵值哈希內存

劉冰 劉乾坤

1.公安部第一研究所 2.北京中盾安信科技發展有限公司

引言

隨著互聯網的高速發展,網絡社會與現實社會已融為一體,網絡身份管理和網絡可信身份認證的需求愈加強烈?!盎ヂ摼W+”可信身份認證平臺是為支撐國家“互聯網+”行動計劃的大數據基礎設施,由國家發改委和科技部支持建設、公安部組織實施、公安部一所承建推廣。平臺的核心功能包括居民網絡身份的簽發、基礎數據的存儲、網絡身份的核驗認證。數據庫系統作為后臺服務的根基,其性能表現直接影響著平臺的服務質量。面對數據體量龐大、日活量高、并發查詢高等應用需求,傳統的數據庫存在一定的局限性,本文通過融合目錄訪問協議、熱數據緩存檢索等多種技術,研究滿足該場景的數據庫應用技術。

一、現存問題及需求分析

(一)現存問題

網絡可信身份認證是一項重大的系統工程,以法定身份證件信息和國家人口基礎信息為基礎,面向全網提供網絡身份認證能力。網絡身份憑證的簽發和管理、真實身份核驗和網絡身份認證等業務場景,都需要后臺數據庫提供高效、精準的數據服務能力。關系型數據庫的優勢在于事務隔離和處理,目錄服務的優勢在于小數量的檢索,但是對于網絡身份認證需求,面向單表十幾億數據規模且多種檢索條件下的高效、精確查詢,這兩種現有的數據庫服務均無法單獨滿足網絡身份認證場景中并發量高、數據體量大、檢索條件不一且快速響應的業務需求。

(1)基于SQL的關系型數據庫因為事務隔離、SQL語言解析、鎖機制等體積龐大而復雜,在數據快速檢索時速度不占優勢。

(2)目錄服務系統[3]是用于網絡數據資源的分布式存儲和快速查詢的專用數據庫系統,內部數據存儲一般使用B+樹結構,這就使得在小數據量時可以獲得優越的檢索性能,但面臨大規模數據量時,由于B+樹結構分成太多層而導致檢索性能大幅下降。尤其是為了維持B+樹結構的平衡性,新數據的增加還可能引起整棵B+樹結構的重新平衡,存儲性能也是大幅度下降。為了容納更多的數據,一般應用勢必會采用搭建目錄服務集群的方式來管理數據,這就帶來了數據管理和維護的復雜度。

(3)目錄服務系統也具有一些其他Key-Value類型數據庫所不具備的優勢,目錄服務系統是用于網絡數據資源的分布式存儲和快速查詢的專用數據庫系統,是專門為那些檢索頻率大大高于數據更新頻率的信息服務而設計的。目錄服務系統一般都遵循LDAP輕型目錄訪問協議,從而能夠保持應用的標準性和獨立性。該協議中規定了目錄的數據單元-條目,并且規定了操作條目數據的九個基本操作,包括綁定、添加、修改、刪除、搜索、比較、解綁等,非常適合網絡身份認證服務的操作。

(二)需求分析

本文嘗試融合多種技術優勢,研究使用單一系統作為網絡身份認證數據庫,解決大規?;A數據下快速存儲及檢索的問題。構建分布式內存Key-Value數據庫(以下簡稱“新型KV數據庫”),支持輕型數據訪問協議、并行接收并處理查詢請求、采用鍵值對存儲數據、提供優化的熱數據鍵值對內存緩存機制等功能,以滿足網絡身份認證應用的需求。

二、總體架構

新型KV數據庫由通訊接口、前端、數據緩存、后端存儲等幾部分組成。居民身份認證平臺通過通訊接口的輕型數據訪問協議與新型KV數據庫前端之間建立網絡連接;新型KV數據庫前端實現并行接收、處理居民身份認證平臺的認證數據訪問請求;數據緩存組件提供優化的與存儲數據相適應的熱數據鍵值對認證數據內存緩存機制;新型KV數據庫后端采用哈希與內分區技術相結合的鍵值對認證數據落地存儲。新型KV數據庫的總體架構如圖1所示。

新型KV數據庫采用分布式集群架構解決大并發問題,采用分片的Key-Value方式數據存儲,通過自定義策略將熱數據存儲在內存中,并且通過Key索引方式保障幾十億身份認證數據的極速即時訪問,平均每條數據的查詢時間小于1毫秒。新型KV數據庫分布式集群架構示意如圖2所示。

三、技術路線及關鍵技術

新型KV數據庫的技術路線是從接口到存儲模型,都不再要求樹形組織形式,而只要求數據具有查詢條件與證書實體之間的鍵值對表達形式,不再使用B+樹結構,而是換成大數據檢索性能更好的Hash結構,使用哈希與內分區技術相結合的鍵值對存儲結構,隨機拆分和均衡證書數據,減少落地數據的數量和被訪問次數,實現更少的磁盤I/O次數,提高新型KV數據庫的證書容量和存儲效率,獲得更好的檢索性能。并且采用優化的內存緩存機制減少數據訪問延遲,保證支持十幾億數量規模時的存儲和檢索性能。新型KV數據庫的關鍵技術包含:

(一)新型數據訪問協議

利用輕型目錄訪問協議構建輕型數據訪問協議,并在格式定義上與標準的輕型目錄訪問協議相兼容,避免了復雜的SQL語言解析,從而能夠繼續保持認證服務應用的標準性和獨立性。輕型數據訪問協議提供完整齊備的數據表達結構、傳輸編碼封裝、數據訪問操作和安全控制功能等。但唯一不要求所存儲的數據必須具有目錄樹形結構和目錄層次特征,而是依據認證數據的特性保持鍵值對形式,提取證書序列號作為主鍵值,證書內容等作為檢索目標,建立檢索條件與主鍵值的索引映射關系,證書使用范圍作為數據存儲的庫名標識。

新型KV數據庫前端系統負責接收、解析認證系統通過輕型數據訪問協議發送過來的認證數據訪問請求。這些訪問請求包括:綁定、解綁定、添加、刪除、修改、搜索、擴展、元數據查詢、放棄。與標準的輕型目錄訪問不同在于,庫名就是所有認證數據快速存儲及檢索的BASE,忽略認證系統提供的SCOPE,即認證系統無需提供檢索范圍,由認證數據存儲及檢索系統依據認證數據的特性來優化存儲和定位檢索目標。

1.認證數據的檢索特征和證書結構

新型KV數據庫為每類認證數據建立單獨的識別名,數據條目包括檢索條件和屬性值。數據條目的檢索條件和每個屬性值都會通過hash轉化為0~9、A~F、a~f之間的數據,每個字段存儲相應的數據信息。例如識別名為CT,檢索條件為sn,屬性值分別為base_dn和scope。

2.使用改造后輕型數據訪問協議進行訪問

以API為例,存儲函數:

LDAPEntry entry=new LDAPEntry(dn,attrs);//參數:屬性集合

ld.add(entry);//添加

檢索函數:ld.search(base_dn,scope,filters,attrs,attrsonly);

其中,base_dn填寫證書類型CT,scope隨意填寫,fileters使用sn的具體值。

(二)基于哈希和內分區的認證數據存儲

后端系統負責前端請求的持久化訪問,將認證數據按照鍵值對形式進行哈希結構存儲,并依據指定分區個數將鍵值數字分配到特定的分區文件中,實現了對億級數量級認證數據的化整為零,減少數據訪問次數,可以快速存儲和檢索。

全部的證書數據分為若干個分區文件進行存儲,需要對檢索字段sn進行分區,假如需要分成3個文件區域,分別將鍵值字符串的ASCII碼值逐個累加轉為十進制數字,根據提供的分區數量進行取模,即可轉為特定的分區編號。示例中的SN1~SN4分別為65/3=2、66/3=0、67/3=1、68/3=2??梢詫N2定位到分區1中存儲,將SN3定位到分區2中存儲,將SN1和SN4定位到分區3中存儲。成功存儲后,該證書數據同步更新到內存的熱數據緩存結構中。

(三)熱數據緩存檢索

新型KV數據庫緩存系統提供優化的與存儲數據相適應的熱數據鍵值對認證數據內存緩存機制,其機制為在內存中申請內存容量允許范圍的空間,依據指定分區個數分區若干個哈希結構進行管理,將從磁盤存儲中特定的分區文件的認證數據的訪問,包括添加、修改,都對應在特定內存哈希結構中進行緩存,當對磁盤存儲中特定的分區文件的認證數據進行檢索之前,首先在特定內存哈希結構中進行檢索,檢索到即返回,內存檢索不到再從分區磁盤存儲中特定的分區文件的認證數據進行檢索,檢索到在特定內存哈希結構中進行緩存后返回,如果將認證數據從磁盤存儲中特定的分區文件進行成功刪除后,需要對應在特定內存哈希結構中進行刪除。使用該內存緩存機制,第一利用了內存的訪問速度明顯快于磁盤的訪問速度,第二內存申請的空間數量小于磁盤空間數量,所容納的認證數據基本為訪問的熱數據,申請的內存空間需要循環利用,常訪問的熱數據在運行一段時間之后基本都從內存中可以檢索到。

內存的熱數據緩存結構與分區存儲的結構相對應,只是限制于內存大小,在檢索時首先檢索熱數據,沒有再檢索硬盤分區存儲數據,成功檢索后,該證書數據同步更新到內存的熱數據緩存結構中。如檢索SN2后,即在內存,下次可直接檢索出SN2。

(1)數據第一次被訪問,加入到訪問歷史列表;

(2)如果數據在訪問歷史列表里后沒有達到K次訪問,則按照規則淘汰;

(3)當訪問歷史隊列中的數據訪問次數達到K次后,將數據索引從歷史隊列刪除,將數據移到緩存隊列中,并緩存此數據,緩存隊列重新按照時間排序;

(4)緩存數據隊列中被再次訪問后,重新排序;

(5)需要淘汰數據時,淘汰緩存隊列中排在末尾的數據,即淘汰“倒數第K次訪問離現在最久”的數據。

四、實現和驗證

本文通過融合改造輕型目錄訪問協議、基于哈希和內分區的認證數據存儲方法、熱數據緩存檢索方法等多種技術方法,從原理上設計了一種新的認證數據快速存儲及檢索的方法,并構建了新型KV數據庫的原型系統。

根據網絡身份認證服務應用場景特點,完成了基于輕型數據訪問協議的業務適配、模擬業務場景的功能測試、單機和集群兩種部署模式的性能對比測試。在具備一定規模的基礎數據環境下,業務方通過API與數據庫建立網絡連接,并向數據庫發起查詢請求,其中請求數據包括已緩存的熱數據和查磁盤的冷數據。測試場景包括不同數據結構下的高并發精確查詢、混合讀寫、批量文件導入,初步驗證了新型KV數據庫原型系統的功能和性能可以基本滿足應用場景的需要。且在億級別基礎數據規模下,數據庫性能表現符合預期,測試結果均高于業務需求指標,且集群部署模式的性能較單機基本呈線性提升。

五、結語

本文研究的新型KV數據庫研究成果應用于“互聯網+”可信身份認證平臺,為平臺百億級基礎數據分區、十萬級業務并發查詢、百萬級吞吐量的快速檢索及響應提供了高效、可靠、穩定的數據服務支撐。

猜你喜歡
鍵值哈希內存
外部高速緩存與非易失內存結合的混合內存體系結構特性評測
非請勿進 為注冊表的重要鍵值上把“鎖”
“春夏秋冬”的內存
一鍵直達 Windows 10注冊表編輯高招
基于OpenCV與均值哈希算法的人臉相似識別系統
基于維度分解的哈希多維快速流分類算法
基于同態哈希函數的云數據完整性驗證算法
一種基于Bigram二級哈希的中文索引結構
基于內存的地理信息訪問技術
注冊表值被刪除導致文件夾選項成空白
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合