首页 理论教育 钨丝计划(Project Tungsten)概述

钨丝计划(Project Tungsten)概述

时间:2023-06-29 理论教育 版权反馈
【摘要】:在Spark的近期发展中,最引人关注的是钨丝计划。因此,作为Spark性能提升的下一阶段的钨丝计划也就因此诞生了。Project Tungsten主要包含以下三大方面。图8-1 Project Tungsten第一阶段图8-2 Project Tungsten第二阶段更多Project Tungsten内容可以跟踪这两个阶段的各个问题。本章的主要目的在于通过解析Spark内核部分与Project Tungsten有关的内容。对应Spark SQL部分与Project Tungsten相关的源代码,解析的方式基本是一致的,且部分设计文档在官方资料中很多都已经给出,而且非常详细,因此本章不再重复这部分内容。

钨丝计划(Project Tungsten)概述

在Spark的近期发展中,最引人关注的是钨丝计划(Project Tungsten)。该计划可以从Databricks公司发布的官方博客获取(具体参考地址为https://databricks.com/blog/2015/04/ 28/project-tungsten-bringing-spark-closer-to-bare-metal.html),从该博客中可以知道,目前制约Spark计算框架性能的瓶颈主要在于CPU与内存,而不是磁盘I/O及网络开销——随着带宽增长、SSD或者磁盘阵列的使用,这部分开销已经不再是Spark计算框架的瓶颈。因此,作为Spark性能提升的下一阶段的钨丝计划(Project Tungsten)也就因此诞生了。

关于性能方面的详细信息,可以参考上述博客中的相关介绍,以及《Making Sense of Performance in Data Analytics Frameworks》这篇论文

Project Tungsten主要包含以下三大方面。

·内存管理(Memory Management)和二进制处理(Binary Processing):利用面向应用的语义(application semantics)来更明确地管理内存,同时消除JVM对象模型和垃圾回收开销。

·缓存友好的计算(Cache-aware Computation):使用算法数据结构来实现内存分级结构(Memory Hierarchy)。

·代码生成(Code Generation,CG):使用代码生成来利用新型编译器和CPU。

当前钨丝计划的详细信息可以参考官网上的两个开发阶段,如图8-1和图8-2所示。(www.xing528.com)

978-7-111-55442-4-Chapter08-1.jpg

图8-1 Project Tungsten第一阶段

978-7-111-55442-4-Chapter08-2.jpg

图8-2 Project Tungsten第二阶段

更多Project Tungsten内容可以跟踪这两个阶段的各个问题(Issue)。

本章的主要目的在于通过解析Spark内核部分与Project Tungsten有关的内容。对应Spark SQL部分与Project Tungsten相关的源代码,解析的方式基本是一致的,且部分设计文档在官方资料(尤其是Issue)中很多都已经给出,而且非常详细,因此本章不再重复这部分内容。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈