一种用于内存数据库的数据处理方法及系统技术方案

技术编号:21714318 阅读:33 留言:0更新日期:2019-07-27 19:11
本发明专利技术公开了一种用于内存数据库的数据处理方法及系统,包括:基于哈希Hash索引技术将数据中的关键词直接映射为存储地址;根据事务所指示的数据操作请求创建新的版本行,并用时间戳标记事务和行版本实现无锁事务;根据预设的隔离级别对所述事务进行安全性验证;其中,所述预设的隔离级别包括:快照隔离级别、可重复读隔离级别或序列化隔离级别;当所述事务通过安全性验证时,进入提交处理阶段用于写日志,并将新的版本行数据对其它事务可见。本发明专利技术采用统一标准定义数据来作为数据库定义基础,可扩展性强;采用多版本时间戳数据行控制来实现无锁事务;采用Hash预取算法索引方式来提升内存空间使用效率和CPU指令执行效率,比一般内存数据库的数据处理具有速度很快;拥有统一标准化的接口,能方便适用于多种平台和工具上。

A Data Processing Method and System for Memory Database

【技术实现步骤摘要】
一种用于内存数据库的数据处理方法及系统
本专利技术涉及内存数据库
,并且更具体地,涉及一种用于内存数据库的数据处理方法及系统。
技术介绍
随着国产软件的逐渐壮大,政府对国产软件进行了大力的支持,使得国产软件得到了迅速的发展。国产数据库是国产软件的代表之一。目前随着安全可靠市场一期二的建立,安全可靠替代工程逐步开展,系统的不断升级优化,各省的安全可靠数据越来越多,面临着大量的数据迁移工作。而且为了适应新的应用系统,需要对迁移过来的越来越多地数据进行大量地处理。迫切需要一种技术能广泛地适应多种数据库中数据类型,能高速地读写和处理大量数据,从而有效地缩短单项工程的实施周期,支持已有环境中异构数据的迁移,实现将海量数据从其他数据库迁移到国产数据库中。内存数据库技术恰恰满足了这一需求。无论是什么种类数据库都是遵循数据库原理设计,从数据库原理中我们可以知道索引技术对数据库读写速度的影响有多大,在相同硬件环境下,检索索引的速度决定了数据库的处理速度。现在绝大多数内存数据库由于是刚刚从传统数据库升级过来的,有些还采用旧的基于硬盘优化的索引技术,采用空间换时间策略,具有存储空间利用率低,执行指令冗长,执行效率低等缺点。传统的数据库引擎面临的问题包括:1.保护内存中的数据结构而采用的闩锁(latch)引起的热点(hotspots)问题;2.使用锁机制控制多版本并发带来的阻塞等问题;3.使用解释型(interpretation)语言的执行计划的执行效率问题。
技术实现思路
本专利技术提出一种用于内存数据库的数据处理方法及系统,以解决如何一致、可靠以及高效地实现海量数据迁移的问题。为了解决上述问题,根据本专利技术的一个方面,提供了一种用于内存数据库的数据处理方法,其特征在于,所述方法包括:基于哈希Hash索引技术将数据中的关键词直接映射为存储地址;根据事务所指示的数据操作请求创建新的版本行,并用时间戳标记事务和行版本实现无锁事务;其中,所述数据操作请求包括:增加、删除、修改和查询;根据预设的隔离级别对所述事务进行安全性验证;其中,所述预设的隔离级别包括:快照隔离级别、可重复读隔离级别或序列化隔离级别;当所述事务通过安全性验证时,进入提交处理阶段用于写日志,并将新的版本行数据对其它事务可见。优选地,其中所述方法还包括:当所述事务为对数据进行更新时,采用比较和更新CAS实现无锁操作,通过比对物理地址的值与携带值是否匹配,匹配则可操作,不匹配则拒绝操作。优选地,其中所述方法还包括:当所述事务为对数据页进行增量更新时,在数据上生成一个新的增量地址作为数据页的访问入口,并采用CAS完成映射表中物理新地址的映射,并对针对同一数据页可能出现的同时更新操作按照预设的选择机制进行仲裁,胜出者将进行更新,失败者操作则抛出错误信息。优选地,其中所述方法还包括:当由于更新链过长造成访问数据的时间复杂度提升时,利用查询器生成新的数据页,将物理地址指向新的数据页,并将老的数据页链表的内存释放。优选地,其中所述方法还包括:将利用优化器确定的物理执行计划转译为C语言代码后,通过编译器编译为DLL机器代码。根据本专利技术的另一个方面,提供了一种用于内存数据库的数据处理系统,其特征在于,所述系统包括:数据转化单元,用于基于哈希Hash索引技术将数据中的关键词直接映射为存储地址;事务操作处理单元,用于根据事务所指示的数据操作请求创建新的版本行,并用时间戳标记事务和行版本实现无锁事务;其中,所述数据操作请求包括:增加、删除、修改和查询;事务验证单元,用于根据预设的隔离级别对所述事务进行安全性验证;其中,所述预设的隔离级别包括:快照隔离级别、可重复读隔离级别或序列化隔离级别;事务提交单元,用于当所述事务通过安全性验证时,进入提交处理阶段用于写日志,并将新的版本行数据对其它事务可见。优选地,其中所述事务操作处理单元,还包括:当所述事务为对数据进行更新时,采用比较和更新CAS实现无锁操作,通过比对物理地址的值与携带值是否匹配,匹配则可操作,不匹配则拒绝操作。优选地,其中所述事务操作处理单元,还包括:当所述事务为对数据页进行增量更新时,在数据上生成一个新的增量地址作为数据页的访问入口,并采用CAS完成映射表中物理新地址的映射,并对针对同一数据页可能出现的同时更新操作按照预设的选择机制进行仲裁,胜出者将进行更新,失败者操作则抛出错误信息。优选地,其中所述事务操作处理单元,还包括:当由于更新链过长造成访问数据的时间复杂度提升时,利用查询器生成新的数据页,将物理地址指向新的数据页,并将老的数据页链表的内存释放。优选地,其中所述系统还包括:机器语言获取单元,用于将利用优化器确定的物理执行计划转译为C语言代码后,通过编译器编译为DLL机器代码。本专利技术提供了一种用于内存数据库的数据处理方法及系统,包括:基于哈希Hash索引技术将数据中的关键词直接映射为存储地址;根据事务所指示的数据操作请求创建新的版本行,并用时间戳标记事务和行版本实现无锁事务;根据预设的隔离级别对所述事务进行安全性验证;其中,所述预设的隔离级别包括:快照隔离级别、可重复读隔离级别或序列化隔离级别;当所述事务通过安全性验证时,进入提交处理阶段用于写日志,并将新的版本行数据对其它事务可见。本专利技术采用统一标准定义数据(元数据)来作为数据库定义基础,可扩展性强;在并发锁问题上采用乐观并发中的使用多版本时间戳数据行控制来实现无锁事务;采用Hash预取算法索引方式来提升内存空间使用效率和CPU指令执行效率,比一般内存数据库的数据处理具有速度很快;在执行数据迁移过程中出现错误时,通过多线程来快速地准确定位错误原因,即保证了数据处理的高速快捷,又兼顾了出现错误时的准确方便;拥有统一标准化的接口,能方便适用于多种平台和工具上。附图说明通过参考下面的附图,可以更为完整地理解本专利技术的示例性实施方式:图1为根据本专利技术实施方式的用于内存数据库的数据处理方法100的流程图;图2为根据本专利技术实施方式的内存数据库系统架构图;图3为根据本专利技术实施方式的逻辑ID与物理地址一一映射的示意图;图4为根据本专利技术实施方式的事务处理的示意图;图5为根据本专利技术实施方式的对数据进行更新的实例图;图6为根据本专利技术实施方式的对数据页进行更新的实例图;图7为根据本专利技术实施方式的利用查询器进行整理的示意图;图8为根据本专利技术实施方式的进行数据更新的实例图;图9为根据本专利技术实施方式的将解释性语言替换为机器语言的示意图;以及图10为根据本专利技术实施方式的用于内存数据库的数据处理系统1000的结构示意图。具体实施方式现在参考附图介绍本专利技术的示例性实施方式,然而,本专利技术可以用许多不同的形式来实施,并且不局限于此处描述的实施例,提供这些实施例是为了详尽地且完全地公开本专利技术,并且向所属
的技术人员充分传达本专利技术的范围。对于表示在附图中的示例性实施方式中的术语并不是对本专利技术的限定。在附图中,相同的单元/元件使用相同的附图标记。除非另有说明,此处使用的术语(包括科技术语)对所属
的技术人员具有通常的理解含义。另外,可以理解的是,以通常使用的词典限定的术语,应当被理解为与其相关领域的语境具有一致的含义,而不应该被理解为理想化的或过于正式的意义。图1为根据本专利技术实施方式的用于内存数据库本文档来自技高网
...

【技术保护点】
1.一种用于内存数据库的数据处理方法,其特征在于,所述方法包括:基于哈希Hash索引技术将数据中的关键词直接映射为存储地址;根据事务所指示的数据操作请求创建新的版本行,并用时间戳标记事务和行版本实现无锁事务;其中,所述数据操作请求包括:增加、删除、修改和查询;根据预设的隔离级别对所述事务进行安全性验证;其中,所述预设的隔离级别包括:快照隔离级别、可重复读隔离级别或序列化隔离级别;当所述事务通过安全性验证时,进入提交处理阶段用于写日志,并将新的版本行数据对其它事务可见。

【技术特征摘要】
1.一种用于内存数据库的数据处理方法,其特征在于,所述方法包括:基于哈希Hash索引技术将数据中的关键词直接映射为存储地址;根据事务所指示的数据操作请求创建新的版本行,并用时间戳标记事务和行版本实现无锁事务;其中,所述数据操作请求包括:增加、删除、修改和查询;根据预设的隔离级别对所述事务进行安全性验证;其中,所述预设的隔离级别包括:快照隔离级别、可重复读隔离级别或序列化隔离级别;当所述事务通过安全性验证时,进入提交处理阶段用于写日志,并将新的版本行数据对其它事务可见。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:当所述事务为对数据进行更新时,采用比较和更新CAS实现无锁操作,通过比对物理地址的值与携带值是否匹配,匹配则可操作,不匹配则拒绝操作。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:当所述事务为对数据页进行增量更新时,在数据上生成一个新的增量地址作为数据页的访问入口,并采用CAS完成映射表中物理新地址的映射,并对针对同一数据页可能出现的同时更新操作按照预设的选择机制进行仲裁,胜出者将进行更新,失败者操作则抛出错误信息。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:当由于更新链过长造成访问数据的时间复杂度提升时,利用查询器生成新的数据页,将物理地址指向新的数据页,并将老的数据页链表的内存释放。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:将利用优化器确定的物理执行计划转译为C语言代码后,通过编译器编译为DLL机器代码。6.一种用于内存数据库的数据处理系统,其特征在于,所述系统包括:数据转...

【专利技术属性】
技术研发人员:徐磊郝宝静
申请(专利权)人:华迪计算机集团有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1