# 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