这里是恒生产品研究所第3期,今天为各位解密一项神秘的技术——内存数据库技术。
(资料图片)
信息技术和证券行业的快速发展,金融交易数据量越来越大,对于证券行业而言,构建新一代核心业务系统时,对数据库的处理能力及性能提出了更高的要求。
作为恒生新一代核心业务系统UF3.0,已经开始搭载新的技术“引擎”——内存数据库技术。
十年沉淀:恒生内存数据库
内存数据库又称主存数据库(IMDB/MMDB, In-memory/main memory database),是一种主要依靠内存来存储数据的数据库管理系统。
在数据库技术中,有一类内存优化技术,是在传统的磁盘数据库中,增加内存缓冲池,也就是常说的共享内存技术,其主要目的是最小化磁盘访问。访问数据过程中的地址映射和转换依然存在,只是省掉了将数据块从磁盘加载到内存的开销;锁和数据分开存放和管理。
而内存数据库技术,几乎把整个数据库放进了内存中,相较于传统数据库使用的磁盘读写机制,内存具备更极致的读写速度,性能会比传统的磁盘数据库有数量级的提升;锁和数据可以放在一起。
因此,内存数据库通常被用于对性能要求较高的场景中。
从研发基于内存的极速交易系统,到自研内存数据库,再到完善开发工具的适配、不断进行版本迭代,恒生自研的内存数据库已经耕耘了十余年。
恒生内存数据库发展主要经历了三个阶段:
第一阶段:UFTCORE
2012年前后,因为行业需求的驱动,以及自身技术路线的规划,恒生推出了UFTCORE内存数据库,并开发了与之适配的开发工具。
相较于以往的物理数据库,使用内存数据库后核心内部处理性能提升了两个数量级。
经过持续的迭代和优化,UFTCORE支持事务回滚,索引功能增强,业务开发更加便利;同时支持直连数据库,解决数据快速上下场问题。
UFTCORE也在恒生UFT极速交易系统中得到应用,落地广发、方正、长江、兴业证券等近40家客户。
第二阶段:UFTDB
随着业务的发展,对系统的并发要求不断提高,UFTDB诞生。系统支持事务隔离,方便多线程业务。
UFTDB已经在恒生CMC风控系统、O45交易系统、PB2.0、内存清算、事前风控等产品中得到应用。
第三阶段:UFTMDB
随着业务系统规模不断扩大,UFTDB逐步演进为UFTMDB,实现了多进程隔离,提高了整体的稳定性。
目前,UFTMDB已在Alpha Broker 3.0系统(以UF3.0底层技术为基础开发)中应用,即将应用在UF3.0的内存交易中。
从UFTCORE到UFTDB,再到如今的UFTMDB,恒生内存数据库继承了此前版本的优势,同时又通过多进程隔离提高整体的稳定性,使性能、可靠性和可维护性得到持续提升。
恒生内存数据库有哪些特性?
恒生内存数据库具备配套的开发平台,包括应用框架程序和开发工具。在分布式松耦合微服务的领先架构下,可以实现稳态和敏态并行。
技术服务于业务,恒生内存数据库的特性跟随着业务场景的需求持续进化,可以根据业务特点进行针对性的设计。
-业务性能优
恒生内存数据库的基础数据模型贴近关系数据库,同样有表、索引等,方便业务开发人员的理解。主要的差别是在此基础上支持复杂的关联关系,如交易系统中一个账户下可以有多个订单,一笔订单可能对应多笔成交,每笔成交对应一笔订单,这个关系都可以在内存数据库中建立起来,减少查找时数据检索范围,避免像关系数据库那样只能通过字段关联检索。
-符合一致性要求
恒生内存数据库支持事务提交和回滚,方便业务逻辑代码的开发,并支持Read Committed事务隔离级别。支持MVCC(多版本并发控制),解决读写之间的阻塞问题,提升事务并发处理能力。事务结束自动生成Redo日志,可以根据业务不同等级的灾备需求选择异步复制、半同步复制和强同步复制。
-兼容性好
恒生内存数据库可实现直接连接Oracle、MySQL、PostgreSQL 等,根据不同数据库提供的批量数据拷贝接口,分别实现快速的数据导入导出功能。
十年磨一剑,出鞘必锋芒。
恒生内存数据库经过了10余年持续打磨,克服了各种难点,积累了核心底层技术,有完整配套的开发工具,并且适配了主流的信创硬件。
目前,UFTMDB已经有大量成熟应用,有能力支撑各类场景需求,即将在UF3.0交易订单子系统中得到应用落地,为证券公司的业务发展打好基础并进行赋能,积极推进整个中国金融科技行业的发展。
恒生产品研究所
HUNDSUN PRODUCT RESEARCH INSTITUTE
【产品研究所】是恒生官微全新推出的系列栏目,全方位多角度解读恒生产品。
恒生基于国际软件质量标准ISO9126,结合金融行业的实际情况,总结出“恒生产品竞争力六边形模型”,从产品功能性、可靠性、用户体验、性能、易安装性、可维护性六个方面,打造金融IT领域好产品。
关键词: