記憶體資料庫又稱主存資料庫,是一種主要依靠記憶體來儲存資料的資料庫管理系統。相較於基於磁碟儲存的傳統資料庫,記憶體資料庫的資料讀寫速度可以高出幾個數量級,極大地提高應用效能,更能滿足使用者規模不斷攀升等背景下的高併發、低延時需求。
分析機構Verified Market Research在2020年釋出的市場研究報告顯示,全球記憶體資料庫市場將以19.65%的複合年增長率增長。
記憶體資料庫VS共享記憶體?
記憶體資料庫首個雛形誕生於1976年,90年代商業化記憶體資料庫開始湧現,目前開源記憶體資料庫成為主力軍。早期由於記憶體價格昂貴等原因,記憶體資料庫發展較慢。隨著記憶體技術逐漸成熟,記憶體器件的單位價格快速下降,同時容量密度快速上升,記憶體資料庫的發展越來越快,記憶體資料庫和傳統資料庫混合使用正成為趨勢。
在資料庫技術中,共享記憶體(Shared Memory)是一種多程序之間的通訊方法,僅僅將所有的資料都載入到共享記憶體中無法與記憶體資料庫等同。一方面,資料載入在共享記憶體中,訪問資料過程中的地址對映和轉換依然存在,依舊會消耗CPU資源;另一方面,共享記憶體中的資料要落回磁碟持久化,因此會將鎖和資料分開存放和管理。
而記憶體資料庫技術幾乎把整個資料庫放進了記憶體中,相較於傳統的磁碟讀寫機制,效能有數量級的提升,配合上使用者態協議棧、記憶體大頁等技術,可以比較容易地實現單機幾十萬QPS(每秒查詢率),同時鎖和資料也可以放在一起,使得快取更友好、訪問更快。
同時,隨著非易失記憶體(NVM,Non-Volatile Memory)的出現,還在很大程度上緩解了掉電可能導致記憶體資料遺失的問題,為記憶體資料庫的發展帶來更多機遇。
記憶體資料庫在低延時場景的機遇與挑戰
金融領域有諸多高效能、低延時場景,記憶體資料庫技術的高效能讀寫優勢無疑為交易、合規、風控、清算等場景帶來了更大的“極速”空間,但同時也面臨著一些挑戰。
例如,在證券交易方面,量化、做市等場景對效能的要求非常高,需要實現低延時、高併發、強一致性、高可用,但這幾方面的業務要求可能會互相矛盾,有的實時計算資料量非常大,計算模型非常複雜,在具體實施時需要實現相對的平衡。
面對金融領域的低延時需求,市場中主流的記憶體資料庫存在著一些侷限性。
主流記憶體資料庫是針對通用的場景設計的,主要包括鍵值對記憶體資料庫、關係型記憶體資料庫等型別,一般不會有很個性化的最佳化設計,一個完整的業務流程需要多次訪問資料庫,由此帶來的延遲是極速系統所不能接受的,介面封裝也會帶來一定的開銷,即使部署到同一臺伺服器,也只能減少部分網路耗時,因此並不適合對延時要求極低的場景,如要求10微秒以內完成一筆交易(極速系統的首要追求就是儘可能低的單筆延時)。
基於以上考慮,恆生電子進行了記憶體資料庫的自主研發。
追求極速體驗,恆生電子自研記憶體資料庫
恆生電子自主研發的記憶體資料庫不是典型的關係型記憶體資料庫,但也有一定的資料之間的關聯關係,能夠預處理,因此恆生電子將其定義為物件型弱關係記憶體資料庫。
該記憶體資料庫專注於極速交易等低延時場景,能夠根據業務進行針對性的設計和最佳化,以達到極致的效能,支援高併發、強一致性事務以及複雜的資料模型,同時可滿足金融關鍵應用系統的高可用要求。
從研發基於記憶體的期貨極速交易系統,到自研記憶體資料庫,再到完善開發工具的適配、不斷進行版本迭代,恆生電子自研的記憶體資料庫已經耕耘了十餘年,至今已有數十個產品/專案基於此開發和上線使用。
在自研記憶體資料庫的支援下,恆生高效能家族透過極速、穩定、高可用的產品體驗,正在助力行業整體在低延時場景加速。未來,恆生自研記憶體資料庫將深度整合軟硬體,不斷提高效能,在持久化、容器化、資料組織、索引設計、開發工具與配套工具等方面不斷完善,更好地支援相關金融業務場景。