巨杉数据库助力民生银行、广发银行前台智慧化业务

巨杉数据库目前已经在超过50家大型商业银行的核心业务上线使用,本文为银行金融科技转型应用系列文章第一篇,此后巨杉还将陆续推出银行业应用和科技创新文章,大家敬请期待。

巨杉数据库助力广发民生银行柜面无纸化业务

随着银行业务的不断拓展,以及网点业务的需求量逐渐加大,在新的一轮技术浪潮驱动下,各大商业银行也纷纷开始推进智能网点的建设。其中,商业银行的“柜面无纸化”就是最先推进的业务之一。

包括广发银行、民生银行在内的大型商业银行,已经于近几年内陆续上线柜面无纸化业务,并开始在全国网点内进行推广和使用。今后,随着柜面无纸化、“一站式”综合店员、人工智能等系统的陆续应用,各大商业银行也将全面实现网点智能化转型建设。

大型商业银行,平均有超过300~400个业务系统,每一个业务系统既有各自完整和独立的技术栈,又和其他业务之间存在许多相互依赖的关系,业务和技术复杂度远超其他行业。不仅如此,银行对于平台可靠性要求是最为严苛的,核心数据需要保证0丢失、0错误率,核心业务系统也有“5个9”以上的稳定性要求,这都给后台数据库带来了极大的技术要求。因此,业界也戏称银行是企业级数据库的“试金石”。

“无纸化”业务作为商业银行的新一代应用业务,对数据管理带来了新的挑战。针对银行在新一代柜面无纸化业务上的痛点需求,巨杉数据库在保证稳定安全的基础上,利用其所支持的非结构化存储、结构化事务、可弹性扩张、高可用、以及多数据中心灾备等能力,全面支持广发、民生银行的柜面无纸化业务,为业务带来巨大提升。

 巨杉数据库分布式双活部署整体示意图

非结构化数据存储

作为一款分布式的交易型数据库,SequoiaDB数据库提供了同时存储结构化数据和非结构化数据的机制,非结构化数据的存储在引擎中主要是以 LOB形式来实现的。SequoiaDB 3.0在对象存储API的基础之上提供了标准Posix文件系统接口,能够原生接入任何支持Posix协议标准的操作系统,用户无需对应用程序进行任何改造,即可从NAS迁移至SequoiaDB。

在巨杉数据库中,LOB大对象存储引擎可将各种尺寸的非结构化文件切分成小存储块,按散列映射存放于集群的多个数据组,实现文件的高效并发存取,对外提供对象标识进行文件访问。

在巨杉数据库中,LOB存储结构分为元数据文件(lobm)与数据文件(lobd)。其中,元数据文件存储整个LOB数据文件的元数据模型,包括每个页的空闲状况、散列桶、以及数据映射表等一系列数据结构。而数据文件则存储用户真实数据,数据头之后所有数据页按照page size进行切分,每个数据页不包含任何元数据信息。

与结构化数据的记录引擎不同,巨杉数据库的非结构化存储提供了原生的对象文件块存储机制,同时适用于影像类大文件与票据类小文件。在巨杉数据库对小文件存储与检索的过程当中,每个数据块均使用散列算法判断其所处的物理位置,因此不会进行任何物理查表操作,数据库也不需要维护每个对象文件的物理位置表,因此不论是从安全性、吞吐量,还是响应速度来讲,都远远高于其他同类对象存储。

多活与灾备

巨杉数据库的原生分布式架构,一方面提供了引擎内核级别的内部数据多副本和高可用,以及基于Raft算法的数据一致性的保证。同时,在跨数据中心层面,可以做到以分布式集群为单位的容灾和多活机制,在满足数据安全的前提下,减少了数据安全方面的部署和运维难度。

从多活架构的角度看,巨杉数据库秉承着计算和存储分离的设计思路,因此其SQL解析与执行器,以及数据存储和事务控制一般会分别运行在不同的进程中。在这种情况下,利用数据库自身分布式与三副本复制的特性,将数据打散放置在多个数据中心内,每个数据中心配置本地SQL服务节点,从应用程序的角度看不需要关注底层数据库的主从架构,仅需要通过JDBC连接到本地的SQL服务节点进行读写操作即可。在这种架构下,每个SQL节点完全对等,并均可以处理读写操作,而所有的事务控制、一致性控制、锁等待等机制都由底层的分布式数据库直接提供。

以两地三中心为例,在该架构中,城市A机房1作为主机房,提供与同城的机房2之间的同步数据复制。对于城市B的机房来说,在带宽足够的情况下可以选择使用同步机制与城市A的机房进行数据复制,而在带宽不足时则可以选择异步的复制方式。

同时,巨杉也支持异地灾备机房的定期追加更新。用户可以通过定义异地灾备机房的同步策略,让灾备机房定期进行日志文件的同步,从而使得灾备机房与主机房的数据拥有一定的时间差异,避免手工误操作。

高性能实时响应

通过采用分布式架构、多维数据分区、高性能索引、数据压缩等机制,影像平台无论是存储非结构化数据还是结构化数据,在大量数据下依旧能保持性能的平滑扩展以及实时响应。在性能测试对比中,对比巨杉数据库,传统NAS方案想要达到同样吞吐量的话,至少需要3倍以上的磁盘数量。

以下是巨杉数据库在实际测试环境中,对于非结构化数据管理这块的测试数据:

  • 2GB/s的整体吞吐量,分布式架构
  • 6节点x86服务器、整个集群共36块SAS盘
  • 传统方案,高端配置:1.5GB/s 120块盘以上
  • 100%写入场景

吞吐量(MB/秒)

50KB

200KB

1MB

10MB

整个集群(6节点)

353.3

1232.8

2223.3

2077.5

平均单物理节点

58.9

205.5

370.5

346.3

数据写入平均时延(ms)

14

16

44

466

  • 100%读取场景

吞吐量(MB/秒)

50KB

200KB

1MB

10MB

整个集群(6节点)

352.9

1225.1

2410.9

2653.3

平均单物理节点

58.8

204.2

401.8

442.2

数据写入平均时延(ms)

14

16

41

369

  • 混合业务场景

吞吐量(MB/秒)

50KB

200KB

1MB

10MB

整个集群(6节点)

363.7

1266.0

1872.8

2323.8

平均单物理节点

60.6

211.0

312.1

387.3

数据写入平均时延(ms)

写:14

读:16

写:14

读:15

写:35

读:106

写:293

读:749

以巨杉数据库作为底层数据引擎的分布式非结构化数据管理平台,已经在包括民生银行、广发银行在内的超过50家大型银行业务内应用。在某大型股份制商业银行业务系统中,巨杉数据库总集群部署节点数达到122台物理服务器,部署逻辑节点1530个,平台服务银行网点数超过840 ,性能响应在毫秒级别,数据实现了同城数据中心灾备和双活。

民生银行:

民生银行是中国第一家主要由民营企业发起设立的全国性股份制商业银行,截至2017年末,中国民生银行已经成为资产总额59,020.86亿元,一级资本净额超过3800亿元、资产总额超过5.9万亿元、分支机构近3000家、员工近5.8万人的大型商业银行。在英国《银行家》杂志20177月发布的全球1000家大银行排名中,中国民生银行位居第29位。民生银行坚持“民营企业的银行、科技金融的银行、综合服务的银行”的战略定位,锐意变革创新,加速战略转型,致力于成为一家特色鲜明、价值成长、持续创新的标杆性银行。

(摘自民生银行官网)

广发银行:

广发银行是国内首批组建的股份制商业银行之一。目前在全国设立了43家一级分行、843家营业机构,并与全球125个国家和地区的1,718家银行总部及其分支机构建立了代理行关系,为超过30万对公客户、3,422万个人客户、5,711万张信用卡客户、2,427万移动金融客户提供优质、全面的金融服务。广发银行在移动金融创新领域一直走在行业前列,强力推动智慧化银行发展,持续推动移动金融创新,在升级普惠金融、助力实体经济等方面取得了丰富成果。

(摘自广发银行官网)

关于巨杉数据库

目前,巨杉数据库付费企业级客户与社区用户总数超过1000家,并已在超过50家500强级别的银行、保险、证券等大型金融机构生产业务上线。

对于非结构化数据管理,巨杉数据库在金融行业的应用场景包括:金融行业新一代影像平台、内容管理云平台、传统ECM替换、计算机视觉与人工智能、金融双录系统以及电子证照等数十个业务场景。

 相关阅读:

Multi-Model多模数据库引擎设计与实现

什么是最适合云数据库的架构设计?

金融级数据库的未来发展方向

【巨杉案例】银行高并发柜面账单查询案例

SequoiaDB巨杉数据库大对象块存储原理与应用