识别重要节点

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
10
问题的定义及分析
超图分割: • 分区问题,本质上就是k路平衡超图分割问题,即找这个
超图的最小割。 • 一般采用启发式算法,可以使用 hMETIS包作为算法的基
础。
11
问题的定义及分析
查找特定大小的密集子图: • 给定图的一组节点S,由S导出的子图的密度定义为,这
个子图的边的数量和|S|的比值。密集子图问题,是要找到 一个给定大小的最密集的子图。 • 假设每个查询需要两个数据项,有一个“额外的”分区用 于复制数据项。首先将数据项分布在N-1个分区上,不 用副本,然后试图最优化地使用额外的分区。 • 需要构造一个剩余图,其包含所有的割边。这个大小为C 的子图的所有数据项放到额外的分区上。跟这些边对应的 查询的跨度都从2减少到1。 • 查找一个指定大小的最大密度子图问题是NP-Hard 的。方 法是递归地从剩余图中删除最小度的结点和它所有的剩余 边,直到剩余图的大小为C。
• 使用细粒度的数据放置和复制算法,大大地减少了平均查 询跨度,从而显著减少资源消耗。
• 要达到目标所需要同时考虑的问题:
(1)最小化查询跨度 (2)优化负载 (3)存储限制
6
问题的定义及分析
• 一组数据项D和一组分区,目标是决定要对哪些数据项进 行复制以及如何将它们放置在分区上,来最小化预期的查 询工作负载的平均跨度。
• 对于大部分分析型的工作负载来说,尽量减少查询延迟往 往不是关键的,而应该将注意力集中在减少平均查询跨度 上,也就是说,参与查询的执行的机器的数量上。
• 解决思路:将经常一起被访问的数据项放在一起。
3
研究背景
• 将历史的查询工作负载跟踪建模成为一个超图,超图包含 一组数据项,这些数据项可以是关系(或关系的集合), 也可以是文件块。
• 在大多数分布式环境中,为了容错的需要,通常使用副本 技术。
• 我们要研究的就是:哪些数据项需要被复制,以及将这些 副本放置在哪里。
4
研究背景
• 实验演示来分析查询跨度对于总的资源和能源消耗的影响
• 实验结论:随着参与处理查询的机器数量的增加,处 理查询的总资源消耗也增加了。
5
主要贡献
• 提出了一个工作负载驱动的方法,在分布式数据管理系统 中,通过将查询经常同时访问的数据项放在一起,来最终 减少平均查询跨度。
• 作者: K. Ashwin Kumar, Amol Deshpande, Samir Khuller
• 相关文章:
(1)SWORD:Scalable Workload-Aware Data Placement for
Transactional Workloads
(2)Schism: A Workload-driven Approach to Database Replication
8
问题的定义及分析
• 图ii: 跨度SP(e1)=2, SP(e2)=3, SP(e3)=2, SP(e4)=2,
SP(e5)=1, SP(e6)=3。 因此总和=2+3+2+2+1+3=13。
• 图iii: 跨度SP(e1)=1, SP(e2)=2, SP(e3)=1, SP(e4)=1,
SP(e5)=1, SP(e6)=2。 因此总和=1+2+1+1+1+2=8。
13
数据放置算法---预备知识
• avgDataHale Waihona Puke BaidutemsPerQuery(H) :覆盖超图H中每个查询的数 据项的平均数量
• getSpanningPartitions(G,e) :获取放置方案G中给定超 边e所跨的分区
• pruneHypergraphBySpan(G,H,minSpan):给定一个 当前的放置方案G和minSpan值,这个方法是将超图H中 所有跨度小于等于minSpan的超边都移除掉
and Partitioning.
1
提纲
• 研究背景 • 主要贡献 • 问题的定义及分析 • 数据放置算法
迭代超图分割算法(IHPA) 基于密集子图(DS) 基于预复制的算法(PRA)
• 总结
2
研究背景
• 通过将数据分散在大量的机器上来提高并行执行能力,可 以达到减少查询延迟的预期目标,但在大多数情况下,可 能会显著地增加总的资源和能源消耗。
12
数据放置算法---预备知识
• 运用已知的成熟的超图分割算法(HPA) ,主要专注于适当 地复制数据项来减少平均查询跨度。HPA算法通常试图找 到一个平衡的分区(所有分区的大小大致相等)。
• 数据布局算法的输入:
• 超图H(V,E) • 分区的数量N • 每个分区的容量C
• Ne表示将超图进行分区所需的最小分区数量(Ne≤N)
• getKDensestNodes(H,K):获取超图H的K密度子图
14
数据放置算法---迭代超图分割算法(IHPA)
• 先用HPA得到将数据项放置到Ne个分区的布局方案。然 后使用下面的方法修剪原始的超图H(V,E)来获得剩余超图 H’(V’,E’):将所有的完全包含在一个分区内的超边从超图 中移除,然后删除所有不包含在任何的超边上的数据项。
• 如果H’中节点的数量小于(N-Ne)C,则运用HPA,来获得 H’的均衡分区,并将分区放置在剩余分区上。如果还有空 分区,则重复这个过程。
• 如果H’中节点的数量大于(N-Ne)C,则通过一次移除拥有 最小跨度的超边和当前拥有0度的数据项,进一步地删除 图,直到在H’中的节点数量变得足够低;然后运用HPA, 来获得H’的均衡分区,并将分区放置在剩余分区上。如果 还有空分区,则重复这个过程 。
总的来说, 图ii布局的平均查询跨度是13/6,但使用图iii布局 的副本,将减少至8/6。
9
问题的定义及分析
计算跨度: • 当没有副本的时候,计算查询的跨度很简单:因为每个数
据项与单个分区相关联。 • 然而,如果有副本,整个问题就成为NP-hard的问题。 • 这个问题可以等价于最小集合覆盖问题来进行求解。
• 查询跨度的定义是,为了响应查询所要访问的分区的最小 数量。
• 假设一共给出了N个相同的分区,每个分区有C个单位, 数据项都是单元大小的 。
• 假设Ne表示放置一组数据项D所需要的最小的分区数量
7
问题的定义及分析
• 工作负载可以表示为一个超图H =(V,E),其中节点是数据 项,每个超边e∈E对应于工作负载的一个查询。
相关文档
最新文档