TY - GEN
T1 - Intermediate Data Caching Optimization for Multi-Stage and Parallel Big Data Frameworks
AU - Yang, Zhengyu
AU - Jia, Danlin
AU - Ioannidis, Stratis
AU - Mi, Ningfang
AU - Sheng, Bo
N1 - Publisher Copyright:
© 2018 IEEE.
PY - 2018/9/7
Y1 - 2018/9/7
N2 - In the era of big data and cloud computing, large amounts of data are generated from user applications and need to be processed in the datacenter. Data-parallel computing frameworks, such as Apache Spark, are widely used to perform such data processing at scale. Specifically, Spark leverages distributed memory to cache the intermediate results, represented as Resilient Distributed Datasets (RDDs). This gives Spark an advantage over other parallel frameworks for implementations of iterative machine learning and data mining algorithms, by avoiding repeated computation or hard disk accesses to retrieve RDDs. By default, caching decisions are left at the programmer's discretion, and the LRU policy is used for evicting RDDs when the cache is full. However, when the objective is to minimize total work, LRU is woefully inadequate, leading to arbitrarily suboptimal caching decisions. In this paper, we design an algorithm for multi-stage big data processing platforms to adaptively determine and cache the most valuable intermediate datasets that can be reused in the future. Our solution automates the decision of which RDDs to cache: this amounts to identifying nodes in a direct acyclic graph (DAG) representing computations whose outputs should persist in the memory. Our experiment results show that our proposed cache optimization solution can improve the performance of machine learning applications on Spark decreasing the total work to recompute RDDs by 12%.
AB - In the era of big data and cloud computing, large amounts of data are generated from user applications and need to be processed in the datacenter. Data-parallel computing frameworks, such as Apache Spark, are widely used to perform such data processing at scale. Specifically, Spark leverages distributed memory to cache the intermediate results, represented as Resilient Distributed Datasets (RDDs). This gives Spark an advantage over other parallel frameworks for implementations of iterative machine learning and data mining algorithms, by avoiding repeated computation or hard disk accesses to retrieve RDDs. By default, caching decisions are left at the programmer's discretion, and the LRU policy is used for evicting RDDs when the cache is full. However, when the objective is to minimize total work, LRU is woefully inadequate, leading to arbitrarily suboptimal caching decisions. In this paper, we design an algorithm for multi-stage big data processing platforms to adaptively determine and cache the most valuable intermediate datasets that can be reused in the future. Our solution automates the decision of which RDDs to cache: this amounts to identifying nodes in a direct acyclic graph (DAG) representing computations whose outputs should persist in the memory. Our experiment results show that our proposed cache optimization solution can improve the performance of machine learning applications on Spark decreasing the total work to recompute RDDs by 12%.
KW - Cache Optimization
KW - Inter-mediate Data Overlapping
KW - Multi-stage Framework
KW - Spark
UR - https://www.scopus.com/pages/publications/85057480880
UR - https://www.scopus.com/pages/publications/85057480880#tab=citedBy
U2 - 10.1109/CLOUD.2018.00042
DO - 10.1109/CLOUD.2018.00042
M3 - Conference contribution
AN - SCOPUS:85057480880
T3 - IEEE International Conference on Cloud Computing, CLOUD
SP - 277
EP - 284
BT - Proceedings - 2018 IEEE International Conference on Cloud Computing, CLOUD 2018 - Part of the 2018 IEEE World Congress on Services
PB - IEEE Computer Society
T2 - 11th IEEE International Conference on Cloud Computing, CLOUD 2018
Y2 - 2 July 2018 through 7 July 2018
ER -