4 月 9 日?qǐng)?bào)道,由微信團(tuán)隊(duì)研發(fā)并已開源多年的 WCDB,是一款使用 SQLite 為基礎(chǔ)的終端數(shù)據(jù)庫。自 2017 年 6 月啟動(dòng)以來,至今已推出超過十個(gè)版本。
而后,由于微信集團(tuán)內(nèi)部涉及眾多業(yè)務(wù),數(shù)據(jù)規(guī)模高達(dá)百萬甚至千萬級(jí)別的現(xiàn)狀,原有 WCDB 模塊表現(xiàn)開始顯得力不從心。
為了解決以上問題,自 2019 年起,微信團(tuán)隊(duì)決定對(duì)接口的向后兼容性予以放棄,著力于開發(fā)更加完善且強(qiáng)大的新版本 WCDB。歷經(jīng)數(shù)次改良與迭代,WCDB 的接口層和核心邏輯層均獲得了顯著提高,同時(shí)也增加了諸多新穎而實(shí)用的功能。
如今,微信已經(jīng)發(fā)布此項(xiàng)重大技術(shù)升級(jí)的新版本 WCDB,以及其更為豐富的開發(fā)語言支持,如新增 C++以及對(duì) Java 和 Kotlin 語言的 ORM 提供完整支援,覆蓋越發(fā)廣泛的終端平臺(tái);更強(qiáng)大的 SQL 表達(dá)能力,通過對(duì) Winq 的重新書寫和強(qiáng)化體現(xiàn)出來;全新制定的數(shù)據(jù)存儲(chǔ)機(jī)制,包含了為用戶提供更全面的備份和修復(fù)計(jì)劃;更加便捷靈活的數(shù)據(jù)擴(kuò)展能力,包括數(shù)據(jù)遷移及數(shù)據(jù)壓縮;更加精細(xì)入微的性能優(yōu)化能力,例如 FTS5 效率提升及可中斷事務(wù)功能。
另外值得關(guān)注的是,早先的 WCDB 1.0 版本底部采用 Objective-C、Swift、Java 三種語言開發(fā),雖然三者版本的 SQLite 和數(shù)據(jù)修復(fù)邏輯相同,但各自不同的代碼皆為獨(dú)立開發(fā)完成。
然而,隨著 WCDB 版本更替與逐步發(fā)展,Objective-C 版本實(shí)際發(fā)揮更多功能,而 Swift 和 Java 版則處于相對(duì)落后的境地,兩者間的差距日益加大。
理論上,不同版本的 WCDB 應(yīng)具備相同實(shí)力,但是若將 Objective-C 版本的新邏輯在 Swift 和 Java 上重新實(shí)現(xiàn),工作繁重且易出錯(cuò),且需二次上線驗(yàn)證,因此并不可行。
幸運(yùn)的是,Objective-C 版本中 WCDB 的核心邏輯都通過 C++ 得以實(shí)現(xiàn),考慮到很多支持多語言開發(fā)的系統(tǒng)或庫都依賴 C++ 來構(gòu)建核心邏輯,其他語言則受限于接口層實(shí)現(xiàn),如業(yè)內(nèi)知名的客戶端NoSQL 數(shù)據(jù)庫組件 realmDB 即是類似例子。
遵循此思路來看待 WCDB,只需稍作調(diào)整,便能轉(zhuǎn)換 Core Logic 以 C++ 方式實(shí)現(xiàn),利用 Swift 和 Java 的橋接功能來接入 C++ core logic。同時(shí)為了滿足微信各個(gè)終端環(huán)境對(duì)數(shù)據(jù)庫開發(fā)的需求,WCDB 現(xiàn)已添加對(duì) C++和 Kotlin 的支持,從而能夠全方位適配當(dāng)前終端開發(fā)的主流語言。
在此基礎(chǔ)上,新版本 WCDB 進(jìn)一步強(qiáng)化了接口層支持,對(duì)多個(gè)重要的終端開發(fā)語言,包括 C++、Java、Kotlin、Swift 和 Objective-C 均予以完整支持,涵蓋了 Android、iOS、Windows 和 Linux 四大終端平臺(tái),同時(shí)微信也對(duì) Winq 做了重寫和增強(qiáng),使得開發(fā)人員可以在各類語言環(huán)境下面使用原生語法編寫任意 SQL 語句。
新版 WCDB 功能層面的亮點(diǎn)則在于引入全新的數(shù)據(jù)備份和修復(fù)策略,提升了數(shù)據(jù)修復(fù)成功率,同時(shí)將數(shù)據(jù)備份的資源占用降低至幾乎忽略不計(jì)。
據(jù)悉,WCDB 全新的版本還增設(shè)數(shù)據(jù)遷移和數(shù)據(jù)壓縮兩項(xiàng)功能,協(xié)助使用者通過簡略的設(shè)置處理復(fù)雜業(yè)務(wù)環(huán)境中所出現(xiàn)的數(shù)據(jù)過度集中和膨脹問題。
最后,新版本 WCDB 還優(yōu)化改進(jìn)了 FTS5 以及可中斷事務(wù)等特性,使得開發(fā)者在特定場合下能實(shí)現(xiàn)更高效的性能優(yōu)化。
-
SQL
+關(guān)注
關(guān)注
1文章
751瀏覽量
43984 -
C++
+關(guān)注
關(guān)注
21文章
2090瀏覽量
73404 -
微信
+關(guān)注
關(guān)注
6文章
508瀏覽量
26437
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論