内存数据库在金融领域高性能、低延时场景下的应用

砍柴网  •  扫码分享
我是创始人李岩:很抱歉!给自己产品做个广告,点击进来看看。  

内存数据库又称主存数据库,是一种主要依靠内存来存储数据的数据库管理系统。相较于基于磁盘存储的传统数据库,内存数据库的数据读写速度可以高出几个数量级,极大地提高应用性能,更能满足用户规模不断攀升等背景下的高并发、低延时需求。

分析机构Verified Market Research在2020年发布的市场研究报告显示,全球内存数据库市场将以19.65%的复合年增长率增长。

内存数据库VS共享内存?

内存数据库首个雏形诞生于1976年,90年代 商业 化内存数据库开始涌现,目前开源内存数据库成为主力军。早期由于内存价格昂贵等原因,内存数据库发展较慢。随着内存技术逐渐成熟,内存器件的单位价格快速下降,同时容量密度快速上升,内存数据库的发展越来越快,内存数据库和传统数据库混合使用正成为趋势。

在数据库技术中,共享内存(Shared Memory)是一种多进程之间的通信方法,仅仅将所有的数据都加载到共享内存中无法与内存数据库等同。一方面,数据加载在共享内存中,访问数据过程中的地址映射和转换依然存在,依旧会消耗CPU资源;另一方面,共享内存中的数据要落回磁盘持久化,因此会将锁和数据分开存放和管理。

而内存数据库技术几乎把整个数据库放进了内存中,相较于传统的磁盘读写机制,性能有数量级的提升,配合上用户态协议栈、内存大页等技术,可以比较容易地实现单机几十万QPS(每秒查询率),同时锁和数据也可以放在一起,使得缓存更友好、访问更快。

同时,随着非易失内存(NVM,Non-Volatile Memory)的出现,还在很大程度上缓解了掉电可能导致内存数据遗失的问题,为内存数据库的发展带来更多机遇。

内存数据库在低延时场景的机遇与挑战

金融 领域有诸多高性能、低延时场景,内存数据库技术的高性能读写优势无疑为交易、合规、风控、清算等场景带来了更大的“极速”空间,但同时也面临着一些挑战。

例如,在证券交易方面,量化、做市等场景对性能的要求非常高,需要实现低延时、高并发、强一致性、高可用,但这几方面的业务要求可能会互相矛盾,有的实时计算数据量非常大,计算模型非常复杂,在具体实施时需要实现相对的平衡。

面对金融领域的低延时需求,市场中主流的内存数据库存在着一些局限性。

主流内存数据库是针对通用的场景设计的,主要包括键值对内存数据库、关系型内存数据库等类型,一般不会有很个性化的优化设计,一个完整的业务流程需要多次访问数据库,由此带来的延迟是极速系统所不能接受的,接口封装也会带来一定的开销,即使部署到同一台服务器,也只能减少部分网络耗时,因此并不适合对延时要求极低的场景,如要求10微秒以内完成一笔交易(极速系统的首要追求就是尽可能低的单笔延时)。

基于以上考虑,恒生电子进行了内存数据库的自主研发。

追求极速体验,恒生电子自研内存数据库

恒生电子自主研发的内存数据库不是典型的关系型内存数据库,但也有一定的数据之间的关联关系,能够预处理,因此恒生电子将其定义为对象型弱关系内存数据库。

该内存数据库专注于极速交易等低延时场景,能够根据业务进行针对性的设计和优化,以达到极致的性能,支持高并发、强一致性事务以及复杂的数据模型,同时可满足金融关键应用系统的高可用要求。

从研发基于内存的期货极速交易系统,到自研内存数据库,再到完善开发工具的适配、不断进行版本迭代,恒生电子自研的内存数据库已经耕耘了十余年,至今已有数十个产品/项目基于此开发和上线使用。

在自研内存数据库的支持下,恒生高性能家族通过极速、稳定、高可用的产品体验,正在助力行业整体在低延时场景加速。未来,恒生自研内存数据库将深度整合软硬件,不断提高性能,在持久化、容器化、数据组织、索引设计、开发工具与配套工具等方面不断完善,更好地支持相关金融业务场景。

随意打赏

提交建议
微信扫一扫,分享给好友吧。