# PDL **Repository Path**: ADSL_USTC/PDL ## Basic Information - **Project Name**: PDL - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-09-09 - **Last Updated**: 2024-10-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 关于 PDL 该项目提出了一种有效的基于组合设计工具PBD (Pairwise Block Design) 的数据布局PDL,以加快混合EC分布式存储系统中单节点故障的数据修复。由于减少了机架间的通信量,并在修复过程中实现了读写I/O的负载平衡,因此它实现了几乎均匀的数据分布以及更高的修复性能。 我们设计了数据的放置策略以及相应的故障恢复方案,并且在Hadoop 3.1.1中实现了它们。 概要:EC在分布式存储系统(DSSes)中越来越受欢迎,因为它以低的存储开销提供了高可靠性。然而,传统的随机数据放置方式在故障恢复过程中会造成大量的跨机架流量和严重的负载不平衡,严重影响恢复性能。此外,在DSS中共存的各种EC策略加剧了上述问题。在本文中,我们提出了一种基于成对平衡设计(PBD)的数据布局PDL来优化DSSes中的故障恢复性能。基于PBD组合设计的性质,PDL给出了统一的数据布局。在此基础上,提出了一种基于rPDL的故障恢复方案。rPDL通过均匀选择替代节点和检索确定的可用块来恢复丢失的块,有效地减少了跨机架流量,并提供了几乎均衡的跨机架流量分布。我们在Hadoop 3.1.1中实现了PDL和rPDL。实验结果表明,与现有的HDFS数据布局相比,rPDL平均减少了62.83%的降级读延迟,提供了6.27倍的数据恢复吞吐量,为前端应用提供了更好的支持。 该项目已被接受在INFOCOM 2020以及TC 2021,相关参考文献如下: @inproceedings{xu2020pdl, title={PDL: A Data Layout towards Fast Failure Recovery for Erasure-coded Distributed Storage Systems}, author={Xu, Liangliang and Lv, Min and Li, Zhipeng and Li, Cheng and Xu, Yinlong}, booktitle={IEEE INFOCOM 2020-IEEE Conference on Computer Communications}, pages={736--745}, year={2020}, organization={IEEE} } @article{xu2021data, title={A Data Layout and Fast Failure Recovery Scheme for Distributed Storage Systems with Mixed Erasure Codes}, author={Xu, Liangliang and Lyu, Min and Li, Zhipeng and Li, Cheng and Xu, Yinlong}, journal={IEEE Transactions on Computers}, year={2021}, publisher={IEEE} } ## Dependencies * JDK 1.8.0 * Apache Maven 3.6.3 * Protobuf 2.5.0 * CMake 3.14.5 ## Build 该项目还在进一步的维护中。编译以及配置PDL,请运行下面的命令: ```bash $ cd PDL $ mvn package -Pdist,native -DskipTests -Dtar ``` ## Configuration ### 系统安装ubuntu 16.04 64 位(28台) 建议在/etc/hostname 下修改节点名称,如nodei(i=1..28),在/etc/hosts 下配置各节点与内网IP的对应,插入如下代码(IP自行定义,建议设置为连续值,方便管理): #Hadoop nodes cluster 192.168.1.81 node1 192.168.1.80 node2 192.168.1.79 node3 192.168.1.78 node4 192.168.1.77 node5 192.168.1.76 node6 192.168.1.75 node7 192.168.1.74 node8 192.168.1.73 node9 192.168.1.72 node10 192.168.1.71 node11 192.168.1.70 node12 192.168.1.69 node13 192.168.1.68 node14 192.168.1.67 node15 192.168.1.66 node16 192.168.1.65 node17 192.168.1.64 node18 192.168.1.63 node19 192.168.1.62 node20 192.168.1.61 node21 192.168.1.60 node22 192.168.1.59 node23 192.168.1.58 node24 192.168.1.57 node25 192.168.1.56 node26 192.168.1.55 node27 192.168.1.54 node28 #Hadoop nodes cluster end ### Hadoop 参数配置 #hadoop-env.sh export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_151 #core-site.xml fs.defaultFS hdfs://node1:/ #hdfs-site.xml dfs.replication 3 dfs.permissions false #yarn-site.xml yarn.resourcemanager.hostname node1 yarn.nodemanager.aux-services mapreduce_shuffle #workers node1 node2 node3 node4 node5 node6 node7 node8 node9 node10 node11 node12 node13 node14 node15 node16 node17 node18 node19 node20 node21 node22 node23 node24 node25 node26 node27 node28