Handling Data Skew for Aggregation in Spark SQL Using Task Stealing

In distributed in-memory computing systems, data distribution has a large impact on performance. Designing a good partition algorithm is difficult and requires users to have adequate prior knowledge of data, which makes data skew common in reality. Traditional approaches to handling data skew by sam...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:International journal of parallel programming 2020-12, Vol.48 (6), p.941-956
Hauptverfasser: He, Zeyu, Huang, Qiuli, Li, Zhifang, Weng, Chuliang
Format: Artikel
Sprache:eng
Schlagworte:
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page 956
container_issue 6
container_start_page 941
container_title International journal of parallel programming
container_volume 48
creator He, Zeyu
Huang, Qiuli
Li, Zhifang
Weng, Chuliang
description In distributed in-memory computing systems, data distribution has a large impact on performance. Designing a good partition algorithm is difficult and requires users to have adequate prior knowledge of data, which makes data skew common in reality. Traditional approaches to handling data skew by sampling and repartitioning often incur additional overhead. In this paper, we proposed a dynamic execution optimization for the aggregation operator, which is one of the most general and expensive operators in Spark SQL. Our optimization aims to avoid the additional overhead and improve the performance when data skew occurs. The core idea is task stealing . Based on the relative size of data partitions, we add two types of tasks, namely segment tasks for larger partitions and stealing tasks for smaller partitions. In a stage, stealing tasks could actively steal and process data from segment tasks after processing their own. The optimization achieves significant performance improvements from 16% up to 67% on different sizes and distributions of data. Experiments show that involved overhead is minimal and could be negligible.
doi_str_mv 10.1007/s10766-020-00657-z
format Article
fullrecord <record><control><sourceid>proquest_cross</sourceid><recordid>TN_cdi_proquest_journals_2845962252</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>2845962252</sourcerecordid><originalsourceid>FETCH-LOGICAL-c319t-d2fbd0de7af7b84685f9afa539976ad178ddfd0957b74ecf3cc07257ff4f81c23</originalsourceid><addsrcrecordid>eNp9kEFLwzAUgIMoOKd_wFPAc_QlbfrS45i6CQORbeeQNUnpNtuZdIj79bZW8Obp8eD73oOPkFsO9xwAHyIHzDIGAhhAJpGdzsiIS0wYZimckxEoJRmmUl2Sqxi3AJCjUiMynZva7qu6pI-mNXS5c5_UN4FOyjK40rRVU9OqpsuDCTu6fFvQdezhlYnd2jrTq9fkwpt9dDe_c0zWz0-r6ZwtXmcv08mCFQnPW2aF31iwDo3HjUozJX1uvJFJnmNmLEdlrbeQS9xg6gqfFAWgkOh96hUvRDImd8PdQ2g-ji62etscQ9291EKlMs-EkD0lBqoITYzBeX0I1bsJX5qD7mPpIZbuYumfWPrUSckgxQ6uSxf-Tv9jfQMZb2yj</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>2845962252</pqid></control><display><type>article</type><title>Handling Data Skew for Aggregation in Spark SQL Using Task Stealing</title><source>SpringerLink Journals - AutoHoldings</source><creator>He, Zeyu ; Huang, Qiuli ; Li, Zhifang ; Weng, Chuliang</creator><creatorcontrib>He, Zeyu ; Huang, Qiuli ; Li, Zhifang ; Weng, Chuliang</creatorcontrib><description>In distributed in-memory computing systems, data distribution has a large impact on performance. Designing a good partition algorithm is difficult and requires users to have adequate prior knowledge of data, which makes data skew common in reality. Traditional approaches to handling data skew by sampling and repartitioning often incur additional overhead. In this paper, we proposed a dynamic execution optimization for the aggregation operator, which is one of the most general and expensive operators in Spark SQL. Our optimization aims to avoid the additional overhead and improve the performance when data skew occurs. The core idea is task stealing . Based on the relative size of data partitions, we add two types of tasks, namely segment tasks for larger partitions and stealing tasks for smaller partitions. In a stage, stealing tasks could actively steal and process data from segment tasks after processing their own. The optimization achieves significant performance improvements from 16% up to 67% on different sizes and distributions of data. Experiments show that involved overhead is minimal and could be negligible.</description><identifier>ISSN: 0885-7458</identifier><identifier>EISSN: 1573-7640</identifier><identifier>DOI: 10.1007/s10766-020-00657-z</identifier><language>eng</language><publisher>New York: Springer US</publisher><subject>2019 ; Algorithms ; Computer Science ; Distributed memory ; Optimization ; Performance enhancement ; Processor Architectures ; Query languages ; Segments ; Software Engineering/Programming and Operating Systems ; Special issue on Network and Parallel Computing for Emerging Architectures and Applications ; Theory of Computation</subject><ispartof>International journal of parallel programming, 2020-12, Vol.48 (6), p.941-956</ispartof><rights>Springer Science+Business Media, LLC, part of Springer Nature 2020</rights><rights>Springer Science+Business Media, LLC, part of Springer Nature 2020.</rights><lds50>peer_reviewed</lds50><woscitedreferencessubscribed>false</woscitedreferencessubscribed><citedby>FETCH-LOGICAL-c319t-d2fbd0de7af7b84685f9afa539976ad178ddfd0957b74ecf3cc07257ff4f81c23</citedby><cites>FETCH-LOGICAL-c319t-d2fbd0de7af7b84685f9afa539976ad178ddfd0957b74ecf3cc07257ff4f81c23</cites><orcidid>0000-0001-8017-2344</orcidid></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><linktopdf>$$Uhttps://link.springer.com/content/pdf/10.1007/s10766-020-00657-z$$EPDF$$P50$$Gspringer$$H</linktopdf><linktohtml>$$Uhttps://link.springer.com/10.1007/s10766-020-00657-z$$EHTML$$P50$$Gspringer$$H</linktohtml><link.rule.ids>314,776,780,27901,27902,41464,42533,51294</link.rule.ids></links><search><creatorcontrib>He, Zeyu</creatorcontrib><creatorcontrib>Huang, Qiuli</creatorcontrib><creatorcontrib>Li, Zhifang</creatorcontrib><creatorcontrib>Weng, Chuliang</creatorcontrib><title>Handling Data Skew for Aggregation in Spark SQL Using Task Stealing</title><title>International journal of parallel programming</title><addtitle>Int J Parallel Prog</addtitle><description>In distributed in-memory computing systems, data distribution has a large impact on performance. Designing a good partition algorithm is difficult and requires users to have adequate prior knowledge of data, which makes data skew common in reality. Traditional approaches to handling data skew by sampling and repartitioning often incur additional overhead. In this paper, we proposed a dynamic execution optimization for the aggregation operator, which is one of the most general and expensive operators in Spark SQL. Our optimization aims to avoid the additional overhead and improve the performance when data skew occurs. The core idea is task stealing . Based on the relative size of data partitions, we add two types of tasks, namely segment tasks for larger partitions and stealing tasks for smaller partitions. In a stage, stealing tasks could actively steal and process data from segment tasks after processing their own. The optimization achieves significant performance improvements from 16% up to 67% on different sizes and distributions of data. Experiments show that involved overhead is minimal and could be negligible.</description><subject>2019</subject><subject>Algorithms</subject><subject>Computer Science</subject><subject>Distributed memory</subject><subject>Optimization</subject><subject>Performance enhancement</subject><subject>Processor Architectures</subject><subject>Query languages</subject><subject>Segments</subject><subject>Software Engineering/Programming and Operating Systems</subject><subject>Special issue on Network and Parallel Computing for Emerging Architectures and Applications</subject><subject>Theory of Computation</subject><issn>0885-7458</issn><issn>1573-7640</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2020</creationdate><recordtype>article</recordtype><sourceid>8G5</sourceid><sourceid>BENPR</sourceid><sourceid>GUQSH</sourceid><sourceid>M2O</sourceid><recordid>eNp9kEFLwzAUgIMoOKd_wFPAc_QlbfrS45i6CQORbeeQNUnpNtuZdIj79bZW8Obp8eD73oOPkFsO9xwAHyIHzDIGAhhAJpGdzsiIS0wYZimckxEoJRmmUl2Sqxi3AJCjUiMynZva7qu6pI-mNXS5c5_UN4FOyjK40rRVU9OqpsuDCTu6fFvQdezhlYnd2jrTq9fkwpt9dDe_c0zWz0-r6ZwtXmcv08mCFQnPW2aF31iwDo3HjUozJX1uvJFJnmNmLEdlrbeQS9xg6gqfFAWgkOh96hUvRDImd8PdQ2g-ji62etscQ9291EKlMs-EkD0lBqoITYzBeX0I1bsJX5qD7mPpIZbuYumfWPrUSckgxQ6uSxf-Tv9jfQMZb2yj</recordid><startdate>20201201</startdate><enddate>20201201</enddate><creator>He, Zeyu</creator><creator>Huang, Qiuli</creator><creator>Li, Zhifang</creator><creator>Weng, Chuliang</creator><general>Springer US</general><general>Springer Nature B.V</general><scope>AAYXX</scope><scope>CITATION</scope><scope>3V.</scope><scope>7SC</scope><scope>7WY</scope><scope>7WZ</scope><scope>7XB</scope><scope>87Z</scope><scope>8AL</scope><scope>8FD</scope><scope>8FE</scope><scope>8FG</scope><scope>8FK</scope><scope>8FL</scope><scope>8G5</scope><scope>ABUWG</scope><scope>AFKRA</scope><scope>ARAPS</scope><scope>AZQEC</scope><scope>BENPR</scope><scope>BEZIV</scope><scope>BGLVJ</scope><scope>CCPQU</scope><scope>DWQXO</scope><scope>FRNLG</scope><scope>F~G</scope><scope>GNUQQ</scope><scope>GUQSH</scope><scope>HCIFZ</scope><scope>JQ2</scope><scope>K60</scope><scope>K6~</scope><scope>K7-</scope><scope>L.-</scope><scope>L7M</scope><scope>L~C</scope><scope>L~D</scope><scope>M0C</scope><scope>M0N</scope><scope>M2O</scope><scope>MBDVC</scope><scope>P5Z</scope><scope>P62</scope><scope>PQBIZ</scope><scope>PQBZA</scope><scope>PQEST</scope><scope>PQQKQ</scope><scope>PQUKI</scope><scope>PRINS</scope><scope>Q9U</scope><orcidid>https://orcid.org/0000-0001-8017-2344</orcidid></search><sort><creationdate>20201201</creationdate><title>Handling Data Skew for Aggregation in Spark SQL Using Task Stealing</title><author>He, Zeyu ; Huang, Qiuli ; Li, Zhifang ; Weng, Chuliang</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-c319t-d2fbd0de7af7b84685f9afa539976ad178ddfd0957b74ecf3cc07257ff4f81c23</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2020</creationdate><topic>2019</topic><topic>Algorithms</topic><topic>Computer Science</topic><topic>Distributed memory</topic><topic>Optimization</topic><topic>Performance enhancement</topic><topic>Processor Architectures</topic><topic>Query languages</topic><topic>Segments</topic><topic>Software Engineering/Programming and Operating Systems</topic><topic>Special issue on Network and Parallel Computing for Emerging Architectures and Applications</topic><topic>Theory of Computation</topic><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>He, Zeyu</creatorcontrib><creatorcontrib>Huang, Qiuli</creatorcontrib><creatorcontrib>Li, Zhifang</creatorcontrib><creatorcontrib>Weng, Chuliang</creatorcontrib><collection>CrossRef</collection><collection>ProQuest Central (Corporate)</collection><collection>Computer and Information Systems Abstracts</collection><collection>ABI/INFORM Collection</collection><collection>ABI/INFORM Global (PDF only)</collection><collection>ProQuest Central (purchase pre-March 2016)</collection><collection>ABI/INFORM Global (Alumni Edition)</collection><collection>Computing Database (Alumni Edition)</collection><collection>Technology Research Database</collection><collection>ProQuest SciTech Collection</collection><collection>ProQuest Technology Collection</collection><collection>ProQuest Central (Alumni) (purchase pre-March 2016)</collection><collection>ABI/INFORM Collection (Alumni Edition)</collection><collection>Research Library (Alumni Edition)</collection><collection>ProQuest Central (Alumni Edition)</collection><collection>ProQuest Central UK/Ireland</collection><collection>Advanced Technologies &amp; Aerospace Collection</collection><collection>ProQuest Central Essentials</collection><collection>ProQuest Central</collection><collection>Business Premium Collection</collection><collection>Technology Collection</collection><collection>ProQuest One Community College</collection><collection>ProQuest Central Korea</collection><collection>Business Premium Collection (Alumni)</collection><collection>ABI/INFORM Global (Corporate)</collection><collection>ProQuest Central Student</collection><collection>Research Library Prep</collection><collection>SciTech Premium Collection</collection><collection>ProQuest Computer Science Collection</collection><collection>ProQuest Business Collection (Alumni Edition)</collection><collection>ProQuest Business Collection</collection><collection>Computer Science Database</collection><collection>ABI/INFORM Professional Advanced</collection><collection>Advanced Technologies Database with Aerospace</collection><collection>Computer and Information Systems Abstracts – Academic</collection><collection>Computer and Information Systems Abstracts Professional</collection><collection>ABI/INFORM Global</collection><collection>Computing Database</collection><collection>Research Library</collection><collection>Research Library (Corporate)</collection><collection>Advanced Technologies &amp; Aerospace Database</collection><collection>ProQuest Advanced Technologies &amp; Aerospace Collection</collection><collection>ProQuest One Business</collection><collection>ProQuest One Business (Alumni)</collection><collection>ProQuest One Academic Eastern Edition (DO NOT USE)</collection><collection>ProQuest One Academic</collection><collection>ProQuest One Academic UKI Edition</collection><collection>ProQuest Central China</collection><collection>ProQuest Central Basic</collection><jtitle>International journal of parallel programming</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>He, Zeyu</au><au>Huang, Qiuli</au><au>Li, Zhifang</au><au>Weng, Chuliang</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>Handling Data Skew for Aggregation in Spark SQL Using Task Stealing</atitle><jtitle>International journal of parallel programming</jtitle><stitle>Int J Parallel Prog</stitle><date>2020-12-01</date><risdate>2020</risdate><volume>48</volume><issue>6</issue><spage>941</spage><epage>956</epage><pages>941-956</pages><issn>0885-7458</issn><eissn>1573-7640</eissn><abstract>In distributed in-memory computing systems, data distribution has a large impact on performance. Designing a good partition algorithm is difficult and requires users to have adequate prior knowledge of data, which makes data skew common in reality. Traditional approaches to handling data skew by sampling and repartitioning often incur additional overhead. In this paper, we proposed a dynamic execution optimization for the aggregation operator, which is one of the most general and expensive operators in Spark SQL. Our optimization aims to avoid the additional overhead and improve the performance when data skew occurs. The core idea is task stealing . Based on the relative size of data partitions, we add two types of tasks, namely segment tasks for larger partitions and stealing tasks for smaller partitions. In a stage, stealing tasks could actively steal and process data from segment tasks after processing their own. The optimization achieves significant performance improvements from 16% up to 67% on different sizes and distributions of data. Experiments show that involved overhead is minimal and could be negligible.</abstract><cop>New York</cop><pub>Springer US</pub><doi>10.1007/s10766-020-00657-z</doi><tpages>16</tpages><orcidid>https://orcid.org/0000-0001-8017-2344</orcidid></addata></record>
fulltext fulltext
identifier ISSN: 0885-7458
ispartof International journal of parallel programming, 2020-12, Vol.48 (6), p.941-956
issn 0885-7458
1573-7640
language eng
recordid cdi_proquest_journals_2845962252
source SpringerLink Journals - AutoHoldings
subjects 2019
Algorithms
Computer Science
Distributed memory
Optimization
Performance enhancement
Processor Architectures
Query languages
Segments
Software Engineering/Programming and Operating Systems
Special issue on Network and Parallel Computing for Emerging Architectures and Applications
Theory of Computation
title Handling Data Skew for Aggregation in Spark SQL Using Task Stealing
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-28T16%3A10%3A52IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-proquest_cross&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=Handling%20Data%20Skew%20for%20Aggregation%20in%20Spark%20SQL%20Using%20Task%20Stealing&rft.jtitle=International%20journal%20of%20parallel%20programming&rft.au=He,%20Zeyu&rft.date=2020-12-01&rft.volume=48&rft.issue=6&rft.spage=941&rft.epage=956&rft.pages=941-956&rft.issn=0885-7458&rft.eissn=1573-7640&rft_id=info:doi/10.1007/s10766-020-00657-z&rft_dat=%3Cproquest_cross%3E2845962252%3C/proquest_cross%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_pqid=2845962252&rft_id=info:pmid/&rfr_iscdi=true