低延时、高可用的背后:揭秘支撑高性能家族的恒生自研内存数据库

作者:彭志刚 何仲君
在这里插入图片描述

内存数据库又称主存数据库(IMDB/MMDB,In-Memory / Main Memory
database),是一种主要依靠内存来存储数据的数据库管理系统。相较于基于磁盘存储的传统数据库,内存数据库的数据读写速度可以高出几个数量级,极大地提高应用的性能,更能满足用户规模不断攀升等背景下的高并发、低延时需求,市场关注度与日俱增。分析机构Verified
Market Research在2020年发布的市场研究报告显示,全球内存数据库市场将以19.65%的复合年增长率增长。

内存数据库VS共享内存?

内存数据库并不是一种新生事物,从1976年第一个雏形诞生,到90年代商业化内存数据库开始涌现,再到目前开源内存数据库成为主力军,已经经历了近半个世纪的发展。早期由于内存价格昂贵等原因,内存数据库发展较慢,随着内存技术逐渐成熟,内存器件的单位价格快速下降,同时容量密度快速上升,内存数据库的发展越来越快,在很大程度上会替代原有的关系型数据库的一些功能,内存数据库和传统数据库混合使用正在成为趋势

在数据库技术中,共享内存 (Shared Memory)是一种比较常见的技术,指在多处理器的计算机系统中,可以被不同CPU访问的大容量内存,是一种多进程之间的通信方法,由于多个CPU需要快速访问存储器,需要对存储器进行缓存,目的在于最小化磁盘访问。有人可能会问,如果将所有的数据都加载到共享内存中,是否就与内存数据库一样?其实不然。

一方面,数据加载在共享内存中,访问数据过程中的地址映射和转换依然存在,这是非常消耗CPU资源的,只是省掉了将数据块从磁盘加载到内存的开销;另一方面,共享内存中的数据要落回磁盘持久化,因此会将锁和数据分开存放和管理。而内存数据库技术几乎把整个数据库放进了内存中,相较于传统的磁盘读写机制,性能有数量级的提升,配合上用户态协议栈、内存大页等技术,可以比较容易地实现单机几十万QPS(每秒查询率) ,同时锁和数据也可以放在一起,使得缓存更友好、访问更快

由于内存数据库的所有数据都在内存里,一旦遇到掉电就会遇到比较大的挑战,不过非易失内存 (NVM,Non-Volatile Memory)的出现,可以在很大程度上缓解内存数据遗失的问题,为内存数据库的发展带来更多机遇。

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

金融领域有诸多高性能、低延时场景,内存数据库技术的高性能读写优势无疑为交易、合规、风控、清算等场景带来了更大的“极速”空间,但同时也存在一些挑战。例如在证券交易方面,量化、做市等场景对性能的要求非常高,需要实现低延时、高并发、强一致性、高可用,但这几方面的业务要求可能会互相矛盾,有的实时计算数据量非常大,计算模型非常复杂,在具体实施时需要实现相对的平衡。

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

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

恒生自主研发的内存数据库不是典型的关系型内存数据库,但也有一定的数据之间的关联关系,能够预处理,因此恒生将其定义为对象型弱关系内存数据库,专注于极速交易等低延时场景,能够根据业务进行针对性的设计和优化 ,以达到极致的性能,支持高并发、强一致性事务以及复杂的数据模型,同时可满足金融关键应用系统的高可用要求。

从研发基于内存的期货极速交易系统,到自研内存数据库,再到完善开发工具的适配、不断进行版本迭代,恒生自研的内存数据库已经耕耘了十余年,至今已有数十个产品/项目基于此开发和上线使用。在自研的内存数据库的支持下,恒生高性能家族通过极速、稳定、高可用的产品体验,正在助力行业整体在低延时场景加速。

未来,恒生自研的内存数据库将持续进行技术提升,深度整合软硬件,不断提高性能,在持久化、容器化、数据组织、索引设计、开发工具与配套工具等方面不断完善,对相关金融业务场景进行更好的支持。

更多金融科技文章请见恒生LIGHT开发者社区

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值