内存数据库的发展
随着云计算、物联网、大数据、人工智能的发展,以大内存、多核/内核处理器计算为特征的新一代存储器计算平台成为了大数据实时分析处理的新平台作为内存计算最具代表性的应用领域,内存数据库不仅是当今数据库领域的前沿技术,而且日益成为新数据库市场增长的关键。
内存数据库的发展主要经历了雏形期、理论成熟期、市场增长期及高速发展期四个阶段。
图1内存数据库的发展过程
雏形期(1970年代)
内存数据库雏形产生于20世纪60年代末到80年代初。 1969年,IBM公司开发世界上第一个基于分层模型的数据库管理系统IMS时,提供了支持通用磁盘存储的IMS和采用内存存储的Fast Path两种方法。 其中,Fast Path提出了数据分层存储的设计理念,将最活跃的数据放置在内存中。 内存数据库起源于分层数据库,后期的发展逐渐向关系型内存数据库转移。
理论成熟期1980年代]
1984年,D J DeWitt等人发表了《Implementation Techniquesfor Main Memory Database Systems》一文。 首次提出了主存储器数据库(主存储/内存数据库)的概念,以及内存数据库的关键理论,如AVL树、散列算法、主存储数据库的恢复机制等,并提出了用于内存数据库的技术框架
1985年至1990年间,各大学和科研机构出现了许多内存数据库产品。 IBM发布了在IBM 370上运行的OBE内存数据库; 威斯康星大学提出用分区域双向锁定模式解决内存数据库中的并发控制问题,设计MM-DBMS内存数据库; 贝尔实验室发表了DALI存储器数据库模型Southern Methodist大学设计了MARS存储器数据库模型; 普林斯顿大学设计了TPK和系统m存储器数据库。
市场增长期(1990年代)
20世纪90年代,随着互联网的发展,越来越多的网络APP系统需要支持大用户同时访问、响应速度高的数据库系统,但内存技术不断发展,性价比大幅提高,内存世界各地开始出现更多商业化的内存数据库产品,并在各行各业得到应用。 1994年,美国OSE公司发布了第一个商业化的内存数据库产品Polyhedra后,德国软件AG发布了TAmino数据库; 日本的UBIT公司开发了XDB; 韩国的Altibase公司相继发布了Altibase; 奥地利QuiLogic公司发布了SQL-IMDB; 发布美国微软至尊数据库; 加拿大的Empress公司发表了EmpressDB。
高速发展期(截至2010年) )。
2010年后,云计算、大数据、物联网、移动互联网、人工智能进入高速发展期,大量APP应用需要实时分析和处理大量数据,系统高并发、低延迟
这个时期以Redis键值型存储器数据库为代表,开源存储器数据库开始兴起,成为解决新的市场需求和应用场景的主力军。 支持关系存储的VoltDB数据库等; 键值对存储NoSQL数据库Aerospike的支持; 数据结构是同时支持键-值对和关系的Apache Ignite。 除开放源码数据库外,一些大型信息技术企业还将占领特色产品进入市场,甲骨文将推出3个数据库一体化Exadata X3,整合TimesTen内存数据库; IBM收购了Solid公司的内存数据库SolidDB,并将其整合到IBM家族的产品中; SAP也推出了商用内存数据库SAP HANA,是支持列存储的关系型内存的数据库,已成为内存数据库的典型产品之一。 国产自主开发的内存数据库往往追求大而完整,但缺乏技术创新,没有特点,产品稳定性一直上不去,也无法进行具有挑战性的性能测试。 所以,稳定性、性能都不能被市场认同。 结果,有点重要的系统谁也不敢用。
中科天玑新型存储器数据库产品
中科天玑的新型内存数据库定位为国产关系型内存数据库产品,具有强大的实时、高可靠性、高安全性、高扩展性、易用性、跨平台的特点,支持国产主流操作系统和硬件平台它补充了传统的关系数据库和新兴大数据平台的深度整合和优势,为客户提供了业界领先的大量实时数据管理解决方案,可以广泛应用于国防、政府、金融、电信、工业控制、大数据
图2产品定位
中科天玑的新型存储器数据库产品采用分层、模块化架构,分为匹配层、基础层、核心层、扩展层、接口层和APP应用层,如下图所示。
mg.com/origin/pgc-image/ab64a5e311da4997b62657d2296c3c96?from=pc”>
图3 产品体系结构
说明如下:
1) 适配层:提供兼容适配商用和国产主流硬件平台和操作系统的接口文件,支持龙芯+中标麒麟、飞腾+银河麒麟、X86+Linux等平台组合。
2) 基础层:提供优化的内存管理基础功能,包括数据库内存池、页管理、堆管理等模块。
3) 核心层:提供完善的数据库内核功能,包括数据组织管理、索引管理、事务管理、运行时控制、安全管理等模块。
4) 扩展层:基于数据库内核,扩展出SQL组件、高可用HA组件、事务日志组件、Web服务组件、集群组件、列数据库等增强组件。
5) 接口层:提供C/C++、SQL、JNI、Python、C#等编程接口。
6) 应用层:支持嵌入式应用软件、桌面端应用软件、服务器端应用软件、移动端APP软件开发。
产品特点
实时性
极精简的数据库设计,最小尺寸不超过300KB;Ø数据库基本操作性能达到微秒级;支持事务ACID特性;支持事务优先级;支持B树, R树, Patricia Trie, KD树, 三元(Trigram)和哈希索引;支持乐观/悲观并发控制,支持多版本并发控制MVCC和多读单写(MURSIW)事务管理机制;支持缓存优化,改进了LRU缓存策略,降低时间敏感任务使用数据对象的检索开销;支持基于确定规则的SQL优化器(RBO),解决CPU操作过于频繁和不可预测的问题;支持事件通知机制,允许将部分数据库变更通知给应用程序;支持数据压缩,可降低存储空间,提升数据库读性能;针对时间序列数据,支持基于行和基于列的混合数据处理方法、基于向量的统计分析函数以及流水操作函数,极大提升数据分析性能。
可靠性
支持事务日志,设置不同的事务隔离级别支持增量备份/恢复,自动检测数据库变化支持数据库串列/镜像,支持固态硬盘、磁盘等持久介质高可用组件(HA)能够在软硬件故障条件下,保证数据库的连续性稳定运行,提供高达“五个9”(99.999%)的可靠性支持自动故障切换下的同步复制和异步复制,HA采用主/从(Active/passive或master/slave)架构,数据库副本只允许读
安全性
支持数据库页级别的CRC校验,检测对存储数据的未授权更改支持AES加密,采用用户提供的密码以阻止非法访问和干预支持所有通信方式下(如C/S、HA和集群)的安全套接层(SSL)和传输层安全(TLS)
扩展性
基于集群的分布式架构采用主/主(active/active)模式,每个数据库实例都作为主节点。任何节点上的任何进程都可以更新本地数据库,集群能快速有效的把变更复制到其他节点最大支持128个节点集群扩展,可对TB级、百亿行数据进行实时管理和统计分析支持分布式查询处理,允许跨多台服务器、多颗CPU或多个CPU核进行分布式查询处理支持分片,通过数据水平分布(数据库水平划分)来扩展提升性能,结合分布式查询处理,可以弹性扩展以适应大数据的工作负载
易用性
支持几乎所有的数据类型支持数据库定义语言(DDL)支持XML导入导出支持SQL标准接口支持先进的ODBC/JDBC驱动支持C、C++、Java等编程接口支持与Qt、VS等主流开发工具集成使用
兼容性
可支持商用和国产主流的工作站和服务器平台:Windows/Linux的32/64位版本。支持龙芯、飞腾主机和服务器以及麒麟操作系统同样支持商用和国产主流的嵌入式平台:VxWorks、ReWorks、DeltaOS等实时操作系统;x86、PowerPC、ARM、MIPS、龙芯、飞腾等硬件平台
应用领域
中科天玑新型内存数据库产品可广泛应用于以下关键行业领域:
国防:舰艇、导弹、战机、火箭、卫星、坦克/装甲车、雷达、数据链等国防系统或装备,对大批量传感器数据进行实时管理
政府:科技情报、财政管理、电子采购与招标、电子税务、社会网格治理等
金融:券商交易系统、实时风控系统、期货交易系统、订单管理系统、福利彩票系统等
电信&网络:网络交换机、卫星网络测控、实时计费系统、运营支撑系统/业务支撑系统(OSS/BSS)等
工业控制:SCADA系统、电力控制系统、汽车电子系统、高铁控制系统等
数据:军事大数据、情报大数据、公安大数据、工业大数据等
边缘计算:国防、电信&网络、工业系统等领域的边缘计算场景
互联网:社交网络、交易平台、电商平台等
结语
中科天玑新型内存数据库产品在实时性、可靠性、国产化方面具有独特优势,能够提供业界领先的极致性能和连续稳定可靠运行保证,满足国防、金融、电信、工控等关键行业领域的严苛要求。同时,中科天玑可以为用户提供业界领先的海量实时数据管理解决方案和长期可持续服务,使用户专注于系统设计和应用软件开发,降低系统复杂性和软件开发成本,为客户创造最佳实践和更大价值。
中科天玑将坚持掌握核心技术和长期服务用户的理念,努力打造具有行业影响力的国产内存数据库基础软件产品,目前已成功应用于国防、金融、舆情、安全等行业中。
健忘的石头,中科天玑新型内存数据库产品总监,长期从事基础软件研发工作,具有IT、航天、船舶等行业背景,拥有丰富的理论和实践经验,先后承担核高基课题和多个型号系统研制工作,并组织研发内存数据库、图数据库等数据库产品,在国防装备和行业项目中得到广泛应用。