分布式GK Summary算法

本文介绍了分布式GK Summary算法在分布式流式数据库中的应用,详细阐述了Merge操作和Prune操作。Merge操作通过合理分配summary tuple保持误差约束,而Prune操作则通过减少summary数量以控制误差边界。
摘要由CSDN通过智能技术生成


0.前言

  本文主要介绍分布式GK Summay算法,考虑分布式流式数据库场景,博客内容来源主要是原始论文与Emory大学的流式数据库的课程内容,本文仅提取出关键内容加入笔者的个人理解,有错误还望谅解与告知。

1.背景

  现在考虑分布式流式数据库,流式数据来源如下图:


这里写图片描述

  上图中每个Processing Node需要统计对应的数据,然后将统计数据merge生成可查询的Summary。上篇博客我们知道对于数据流如何构建GK Summary来支持 ϵapproximate ϕquantile 分位点查询,但是由于数据流来源分布不同,而查询应该基于全局数据,因此需要将所有GK Summary合并merge生成最终全局的Summary查询结构。本文就来探讨分布式GK summary的merge操作以及Prune操作。后续会介绍到Prune操作,不同于上篇GK Summary的delete与compress操作,该操作直接对Summary进行删减,会牺牲误差边界,merge与prune操作是后续A fast algorithm的基础操作。

2.分布式GK Summary算法

2.1 Merge操作

  考虑2个summary merge情况,已经按照summary tuple内部 v 大小排序:

Q={(x1,rmin(x1),rmax(x1)),(x2,rmin(x2),rmax(x2)),...,(xn,rmin(xn),rmax(xn))}Q={(y1,rmin(y1),rmax(y1)),(y2,rmin(y2),rmax(y2)),...,(ym,rmin(ym),rmax(ym))}

  注,上述summary基于 (v,rmin,rmax) 形式,之前博客已经说明,该形式等价于 (v,g,Δ) ,后者主要方便新增数据的summary更新,但是前者可读性更高,故本文说明基于前者形式。

  如何merge生成最终 Q

{(z1,rmin(z1),rmax(z1)),(z2,rmin(z2),rmax(z2)),...,(zn,rmin(zn),rmax(zs))}

  Merge方案:首先,考虑 s=n+m ,关键是分配每个 Q 中summary的 zi rminQ(zn) 以及 rmaxQ(zn)
  不失一般性,假设分配 Q 中的 xr Q zi ,满足:

maxysQ<xrminytQ>xr

  此时, 可以分配 rminQ(zn) rmaxQ(zn)

rminQ(zi)={ rminQ(xr)rminQ(xr)+rminQ(ys),ys,
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值