首页 > 产品 > 平台产品

PRODUCT

分布式内存数据库产品

天源迪科新一代内存数据库

一、背景

随着电信5G的业务推广,对后端业务应用集群带来越来越大的压力,同时随着软件国产化的推进,迫切需要一款行业内的分布式内存数据库,提升数据的处理效率;同时为了提升CPU的利用率和单机的存储能力;迫切需要打破主机的内存限制。


二、产品概述

DIC-MDB是一款支持标准语法,支持主备部署的高可用分布式关系型数据库,具有高性能,高可用,高安全,易运维等特点;接入层,接供通用JDBCODBC接口,及公司级DBDriver SDK接口,兼容MYSQL协议,供多语言开发使用;数据路由层,提供数据分库分表处理,做到水平伸缩;分库存储层提供基于MYSQL协议的数据库代理服务;存储层,提供一种事务性行存储,针对多核和大内存服务器进行了优化,并完全支持ACID特性,包括严格的持久性和高可用性支持;

产品架构


产品分为接入层,数据路由层,分库存储层(代理),数据存储层。

产品架构:

1、SDK接口,接供给业务侧开发使用,业务应用可无改造接入,方便应用系统的升级

2、Web管理界面,提供静态的分库分表规则配置,及动态的界面的监控管理

3、数据路由层进行水平切分实现数据的分布存储,支持取模、Hash、枚举,平均,非平均切分方法对数据进行分片处理,且对应用相对透明,切分规则统一配置,编码开发无须关注

4、分库存储层过加载不同的底层数据库驱动,来对外提供基于MYSQL协议的数据库访问方式,即对于应用来说是一个MYSQL数据库。

5、本地化存储层实现高性能、高可用、易运维以及数据安全的能力。

分布式架构图:


1、TDAL:提供数据库分布式能力,且提供了基于MYSQL协议的数据库访问方式

2、数据Set:根据业务的分表分库规则,实现对业务数据划片,且Set是数据存储的独立单元,实现每块的一主N备的数据存储,且实现自身的主备切换

3、M-Server:负责存储业务数据、执行数据查询任务以及向TDAL返回执行结果。包含主、备两种类型,支持一主多备。

4、CM模块:数据管理模块(Cluster Manager)。管理和监控数据库系统中各个功能单元和物理资源的运行情况,确保整个系统的稳定运行。

5、到物理库的同步:通过MDBBinlog文件,采用分布式同步队列的模式,实现到物理库的同步

关键技术

l  通过MDB-TDAL中间件的分库分表能力,实现数据库分布式部署能能力,同时具备分布式事务和弹性伸缩的能力

l  内存优化数据结构:以实现高并发吞吐量和可预测的低延迟为目标,所有数据和索引都在内存中,不使用中间页缓冲区,并使用持续时间最短的锁。数据结构和所有算法都是专门为内存设计而优化的。

l  免锁事务管理:DIC-MDB在保证严格一致性和数据完整性的前提下,采用乐观的策略实现高并发和高吞吐。在事务过程中,DIC-MDB不会对正在更新的数据行的任何版本加锁,从而大大降低了一些大内存系统中的争用。

l  免锁索引:MOT索引机制基于最先进的Masstree,这是一种用于多核系统的快速和可扩展的键值(Key ValueKV)存储索引,以B+树的Trie实现。通过这种方式,高并发工作负载在多核服务器上可以获得卓越的性能

l  高效持久性:日志和检查点是实现磁盘持久化的关键能力,也是ACID的关键要求之一(D代表持久性)。

l  高SQL覆盖率和功能集:DIC-MDB通过扩展的外部数据封装(FDW)以及索引,几乎支持完整的SQL范围,包括存储过程、用户定义函数和系统函数调用。

l  使用PREPARE语句的查询原生编译:通过使用PREPARE客户端命令,可以以交互方式执行查询和事务语句。这些命令已被预编译成原生执行格式,也称为Code-Gen或即时(Just-in-TimeJIT)编译。这样可以实现平均30%的性能提升。


三、产品特性

n 高性能

(1)  低延迟:提供快速的查询和事务响应时间。

(2)  高吞吐量:支持峰值和持续高用户并发。

(3)  高资源利用率:充分利用硬件。

n 高可用

(1)  主备机功能可以支持主机故障时切换到备机,数据不丢失,业务可以快速恢复。

(2)  逻辑复制可以为数据库数据实时迁移、双库双活、支持滚动升级提供解决方案。

(3)  数据库内某节点出现硬件故障造成节点不可用或者实例状态不正常,通过节点替换或修复故障实例来恢复数据库的过程中,支持用户DML操作,有限场景支持用户DDL操作。

(4)  提供逻辑备份能力,可以将用户表的数据以通用的text或者csv格式备份到本地磁盘文件中,并在同构/异构数据库中恢复该用户表的数据。

(5)  支持将整个数据库的数据以内部格式备份到指定的存储介质中。

(6)  极致RTO支撑数据库主机重启后快速恢复的场景。

(7)  支持新增和删除集群备节点。

(8)  CM管理和监控数据库系统中各个功能单元和物理资源的运行情况,确保整个系统的稳定运行

n 高安全

支持全密态计算,访问控制、加密认证、数据库审计、动态数据脱敏等安全特性,提供全方位端到端的数据安全保护。

n 分布式能力模块

TDAL模块:数据库集群接入节点,使得应用无感知进行数据库表的操作,而不用关注数据库表的水平拆分和垂直拆分(即分库分表),并当数据库节点异常时能够自动进行主备库的切换

MDB模块:通过加载不同的底层数据库驱动,来对外提供基于MYSQL协议的数据库访问方式,即对于应用来说是一个MYSQL数据库

n 易运维

提供可视化运维页面,支持一键部署启停,集群故障检测,多维度指标监控,包括tps,时延,节点连接数等。

(1)  慢sql诊断:慢SQL诊断提供诊断慢SQL所需要的必要信息,帮助开发者回溯执行时间超过阈值的SQL,诊断SQL性能瓶颈。

(2)  提供丰富的客户端和服务器端应用程序(工具),帮助用户更好地维护DMDB

(3)  运维管理模块(Operation Manager),提供数据库日常运维、配置管理的管理接口、工具;

(4)  数据管理模块(Cluster Manager),管理和监控数据库系统中各个功能单元和物理资源的运行情况,确保整个系统的稳定运行。

n TB级别的数据存

1、数据存储:借助英特尔® 傲腾™ 持久内存 (PMem)方案和主机的分布式处理能力,实现T级别的数据存储;且TPS不会随着数据的增大而变小;

2、英特尔® 傲腾™ 持久内存 (PMem)方案:

英特尔® 傲腾持久内存 (PMem) 采用创新内存技术,将高性价比的大容量内存与对数据持久性的支持巧妙地结合在一起。第三代英特尔® 至强® 可扩展处理器和英特尔® 傲腾持久内存 200 系列双剑合璧,通过创建两层内存和存储分层架构,优化工作负载的性能与成本。在支持这些处理器的双路和四路平台上,持久内存正帮助企业将更多数据转化成可行洞察。使新平台架构能够做到以下几点:

将更多数据保存在更靠近 CPU 的地方,帮助加速大内存计算

将数据长久保存在内存中,而无需从存储设备中重新加载, 因此可加快重启时间并减少 I/O

降低大内存节点的功耗


四、 性能基准测试

Intel第三代至强cpuPMEM卡的内存模式测试环境下

测试目标

1、使用生产真实的sql比例(i:u:s=1:3:6),异步模式性能

测试结果


结果来看,dmdb平均访问延迟在微秒级;以并发200线程为例(对标生产连接池200),jdbc方式吞吐量达48.8万,odbc方式吞吐量达41.1万,两种访问方式均满足生产要求。


五、应用场景

交易型应用

大并发、大数据量、以联机事务处理为主的交易型应用,如电商、金融、O2O、电信CRM/计费等,应用可按需选择不同的主备部署模式。

物联网数据

在工业监控和远程控制、智慧城市的延展、智能家居、车联网等物联网场景下,传感监控设备多,采样率高,数据存储为追加模型,操作和分析并重的场景。