【技术实现步骤摘要】
本专利技术的实施例涉及数据结构处理,尤其是允许读取器访问数据而无需必须等待并发机制的获取的分层数据结构处理。
技术介绍
对数据库或表格数据中的实时数据进行商业智能(BI)查询有增加的趋势。传统上,在BI系统和联机事务处理(OLTP)系统之间存在着严格的分离。对于操作型BI以及对于要在同一数据库上执行事务和分析两者存在日益增长的市场压力。字典(支持查找和插入以及可能支持删除/更新的数据结构)经常被分层地组织。这些字典在多核机器上表现不佳,这是因为读取器必须获得锁存(latch)来防止并发的写入器可能损坏或释放它们正在读取的数据结构的部分。
技术实现思路
本专利技术的实施例涉及使用不需要读取器获取锁存而是由写入器获取写入锁存的分层数据结构。一种实施例包括一种方法,该方法包括通过数据结构处理器执行对分层数据结构的并发的读取操作和写入操作。写入器获取对写入器修改的分层数据结构元素的锁存。读取器直接访问分层数据结构元素而无需获取锁存。写入器执行针对分层数据结构的一层或多层的修改操作。当分层数据结构的去除部分不再被引用时,通过使用全局状态值和复制的全局状态值的组合进行跟踪。全局状态值变换通过非重复的值序列。分层数据结构中不再被引用的部分利用当前全局状态值进行标记。参考下面的描述、所附权利要求和附图,本专利技术的这些和其它特
征、方面和优点将会被理解。附图说明图1绘出了根据一实施例的云计算节点;图2绘出了根据一实施例的云计算环境;图3绘出了根据一实施例的一组抽象模型层;图4是示出根据一实施例的、用于对分层数据结构元素进行并发的读取操作和写入操作的系统的框图 ...
【技术保护点】
一种方法,包括:通过数据结构处理器执行对分层数据结构的并发的读取操作和写入操作;通过写入器获取对写入器修改的分层数据结构元素的锁存;通过读取器直接访问分层数据结构元素而无需获取锁存;通过写入器执行针对分层数据结构的一层或多层的修改操作;及当分层数据结构的去除部分不再被引用时,通过使用全局状态值和全局状态值的本地副本的组合进行跟踪;其中:全局状态值变换通过非重复的值序列;及分层数据结构中不再被引用的部分利用在最后一个引用被去除之后捕获的全局状态值进行标记。
【技术特征摘要】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。