对数据结构的并发读取和插入的方法和系统技术方案

技术编号:13894494 阅读:73 留言:0更新日期:2016-10-24 21:09
本公开涉及对数据结构的并发读取和插入而无需读取器的锁存或等待。一种方法包括通过数据结构处理器执行对分层数据结构的并发的读取操作和写入操作。写入器获取对写入器修改的分层数据结构元素的锁存。读取器直接访问分层数据结构元素而无需获取锁存。写入器执行针对分层数据结构的一层或多层的修改操作。当分层数据结构的去除部分不再被引用时,通过使用全局状态值和复制的全局状态值的组合进行跟踪。全局状态值变换通过非重复的值序列。分层数据结构中不再被引用的部分利用当前全局状态值进行标记。

【技术实现步骤摘要】

本专利技术的实施例涉及数据结构处理,尤其是允许读取器访问数据而无需必须等待并发机制的获取的分层数据结构处理。
技术介绍
对数据库或表格数据中的实时数据进行商业智能(BI)查询有增加的趋势。传统上,在BI系统和联机事务处理(OLTP)系统之间存在着严格的分离。对于操作型BI以及对于要在同一数据库上执行事务和分析两者存在日益增长的市场压力。字典(支持查找和插入以及可能支持删除/更新的数据结构)经常被分层地组织。这些字典在多核机器上表现不佳,这是因为读取器必须获得锁存(latch)来防止并发的写入器可能损坏或释放它们正在读取的数据结构的部分。
技术实现思路
本专利技术的实施例涉及使用不需要读取器获取锁存而是由写入器获取写入锁存的分层数据结构。一种实施例包括一种方法,该方法包括通过数据结构处理器执行对分层数据结构的并发的读取操作和写入操作。写入器获取对写入器修改的分层数据结构元素的锁存。读取器直接访问分层数据结构元素而无需获取锁存。写入器执行针对分层数据结构的一层或多层的修改操作。当分层数据结构的去除部分不再被引用时,通过使用全局状态值和复制的全局状态值的组合进行跟踪。全局状态值变换通过非重复的值序列。分层数据结构中不再被引用的部分利用当前全局状态值进行标记。参考下面的描述、所附权利要求和附图,本专利技术的这些和其它特
征、方面和优点将会被理解。附图说明图1绘出了根据一实施例的云计算节点;图2绘出了根据一实施例的云计算环境;图3绘出了根据一实施例的一组抽象模型层;图4是示出根据一实施例的、用于对分层数据结构元素进行并发的读取操作和写入操作的系统的框图;图5示出了可以被一实施例实现的简要散列表(concise hash table,CHT);图6示出了根据一实施例的示例数据结构;图7示出了根据一实施例的、用于变换子节点的对该子节点的修改操作的过程;图8A-8C示出了根据一实施例的、用于回收节点空间的历元处理(epoch processing);及图9是根据一实施例的、用于对分层数据结构进行并发的读取操作和写入操作的过程的框图。具体实施方式已为说明的目的给出了本专利技术的各种实施例的描述,但是这并不是要穷举或限制到所公开的实施例。在不背离所描述实施例的范围和主旨的情况下,许多修改和变化将对本领域普通技术人员显而易见。本文所使用的术语被选择为最好地解释实施例的原理、实践应用或者优于市场上见到的技术的技术改进,或者使本领域其他普通技术人员能够理解本文所公开的实施例。首先应当理解,尽管本公开包括关于云计算的详细描述,但其中记载的技术方案的实现却不限于云计算环境,而是能够结合现在已知或以后开发的任何其它类型的计算环境而实现。云计算是一种服务交付模式,用于对共享的可配置计算资源池进
行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机(VM)和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。特征包括:按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理PDA)对云的使用。资源池:提供者的计算资源被归入资源池并通过多租户(multi-tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,从而为服务提供者和消费者双方提供透明度。服务模型如下:软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的应用的能力。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户机设备访问应用。除了有限
的特定于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用的能力,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源的能力。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。部署模型如下:私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础架构。现在参考图1,其中显示了云计算节点的一个例子。图1显示的
云计算节点10仅仅是适合的云计算节点的一个示例,不应对本专利技术实施例的功能和使用范围带来任何限制。总之,云计算节点10能够被用来实现和/或执行以上所述的任何功能。云计算节点10具有计算机系统/服务器12,其可与众多其它通用或专用计算系统环境或配置一起操作。众所周知,适于与计算机系统/服务器12一起操作的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任意系统的分布式云计算技术环境,等等。计算机系统/服务器12可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数本文档来自技高网
...

【技术保护点】
一种方法,包括:通过数据结构处理器执行对分层数据结构的并发的读取操作和写入操作;通过写入器获取对写入器修改的分层数据结构元素的锁存;通过读取器直接访问分层数据结构元素而无需获取锁存;通过写入器执行针对分层数据结构的一层或多层的修改操作;及当分层数据结构的去除部分不再被引用时,通过使用全局状态值和全局状态值的本地副本的组合进行跟踪;其中:全局状态值变换通过非重复的值序列;及分层数据结构中不再被引用的部分利用在最后一个引用被去除之后捕获的全局状态值进行标记。

【技术特征摘要】
2015.03.27 US 14/671,6641.一种方法,包括:通过数据结构处理器执行对分层数据结构的并发的读取操作和写入操作;通过写入器获取对写入器修改的分层数据结构元素的锁存;通过读取器直接访问分层数据结构元素而无需获取锁存;通过写入器执行针对分层数据结构的一层或多层的修改操作;及当分层数据结构的去除部分不再被引用时,通过使用全局状态值和全局状态值的本地副本的组合进行跟踪;其中:全局状态值变换通过非重复的值序列;及分层数据结构中不再被引用的部分利用在最后一个引用被去除之后捕获的全局状态值进行标记。2.如权利要求1所述的方法,其中所述修改操作包括用于以下的指令:执行对父节点的查找,以便确定要利用读取器无需等待协议修改的子节点;如果没有足够的空间用于修改满的子节点,则形成父节点的新子节点;及将新子节点插入用于子节点的节点链中。3.如权利要求2所述的方法,其中插入第一新子节点包括:当节点链自从开始查找以来没有变化过时,原子地将新子节点添加到节点链,并且利用读取器无需等待协议直接对第一新子节点执行修改。4.如权利要求3所述的方法,还包括:对于对在另一个修改操作上正在进行合并的分区的修改操作或者如果合并该分区是不必要的时,退出执行;创建大小被调整用于保持来自一组子节点的数据的第二新子节点;将该组子节点合并到第二新子节点中;及通过利用第二新子节点替换合并的节点来更新节点链。5.如权利要求1所述的方法,还包括:通过利用定时器信号进行的或在读取和修改动作期间驱动的周期性更新来维护全局状态值,其中包括递增计数器或捕获系统时间值。6.如权利要求1所述的方法,还包括:维护本地状态值,该本地状态值是通过将在任一次形成任何引用之前的全局状态值复制到分层数据结构内的条目中并且当没有操作在本地进行时清除本地状态值来周期性地更新的。7.如权利要求6所述的方法,还包括:通过在所有操作都具有在该值序列中比用于要被回收的部分的标记值出现得晚的本地状态值之后释放分层数据结构中不再被引用的部分来回收空间。8.如权利要求1所述的方法,其中:被限制到单个分层数据结构元素的修改操作被直接执行;及通过形成单独的分割的分层数据结构元素并且保留原始分层数据结构元素不变以供任何并发读取器访问,执行将原始分层数据结构元素分割为两个或更多个分层数据结构元素的修改操作。9.一种用于对分层数据结构元素进行并发的读取操作和写入操作的计算机系统,包括:处理器;耦合到处理器的存储器;程序代码,该程序代码被存储在存储器中并且被处理器执行以便:通过处理器执行对分层数据结构的并发的读取操作和写入操作;通过写入器获取对写入器修改的分层数据结构元素的锁存;通过处理器直接访问分层数据结构元素而无需获取锁存;通过处理器执行针对分层数据结构的一层或多层的修改操作;及当分层数据结构的去除部分不再被引用时,通过处理器通过使用全局状态值和复制的本地状态值的组合进行跟踪;其中:全局状态值变换通过非重复的值序列;及分层数据结构中不再被引用的部分利用当前全局状态值进行标记。10.如权利要求9所述的计算机系统,其中所述修改操作包括程序代码,该程序代码被存储在存储器中并且被处理器执行以便:执行对父节点的查找,以便确定要修改的分区;如果没有足够的空间用于修改满的子节点,则形成父节点的第一新子节点;及将第一新子节点插入在节点链的满的子节点之前。11.如权利要求10所述的计算机系统,其中插入第一新子节点包括:当节点链自从开始查找以来没有变化过时,原子地将第一新子...

【专利技术属性】
技术研发人员:R·J·巴博V·里斯G·M·洛曼V·雷曼R·S·希多
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:美国;US

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

1