Coconut: A Scalable Bottom-Up Approach for Building Data Series Indexes

许多现代应用程序产生大量需要分析的数据序列,需要高效的相似度搜索操作。但是,用于此目的的最先进的数据系列索引在性能或存储成本方面不能很好地适应大规模数据集。我们指出问题出在这样一个事实上:用于索引的数据序列的现有摘要无法排序,而将相似的数据序列保持在已排序的顺序中。这导致了两个设计问题。首先,传统的基于排序的批量装载算法无法使用。相反,索引构造是通过缓慢的自顶向下插入进行的,这会创建一个不连续的索引,导致许多随机I/ o。二是数据序列不能按中值在节点间平均排序和拆分;因此,大多数叶节点实际上几乎是空的。这会进一步降低查询速度并增加存储成本。

Coconut的第一个创新是倒置的、可排序的数据序列总结,它基于z顺序曲线组织数据序列,将相似的系列保持在有序的顺序中。因此,Coconut能够使用依赖于排序的批量加载技术,使用大型连续磁盘I/ o快速构建连续索引。然后,我们研究了基于前缀和基于中位数的拆分策略,用于自底向上的堆加载,结果表明,基于中位数的拆分优于现有的拆分策略,确保所有节点都被密集填充。总的来说,我们通过分析和经验证明,在构建速度、查询速度和存储成本方面,Coconut主导着最先进的数据系列索引。

背景:

The Problem: Unsortable Summarizations 首先,不能使用依赖于排序的传统批量加载算法。第二个问题是不可能对数据序列进行排序,从而在各个节点之间均匀地分割数据序列

方案:

COCONUT

COCONUT索引能够使用基于排序的批量加载技术来高效地构建连续索引。此外,它们能够根据排序和中值在节点之间划分数据序列,以确保索引是平衡的,并且所有节点都被密集地填充。

1.Sortable Summarizations

将不同段的位交错排列,使所有有效位都在所有低有效位之前,这样就可以将所有段中相似的数据序列放在一起排序。

 Coconut-Trie

我们现在提供 Coconut-Trie,这是一个数据索引,它使用可排序的摘要来使用批量加载构造一个连续索引。与最先进的索引方案类似,Coconut-Trie基于所有段中最大的公共前缀在节点之间划分数据条目。与最先进的索引相比,它的优点是产生的索引是连续的,这意味着查询不会发出随机I/O,而是发出大型顺序I/O。

 

 如图所示,我们最初为所有数据序列构造了summariza-(SAX),以及它们的可排序summariza-(invSAX)。然后,我们使用它们的invSAX值对它们进行排序,并使用InsertBottomUp算法构造相应的CoconutTrie索引。按照这个算法,最初,第一个数据序列被放置在一个新节点中。第二个数据系列放置在一个新的节点中

Coconut-Tree

 EXPERIMENTAL EVALUATION

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值