最近更新时间:2024.04.19 11:02:21
首次发布时间:2022.10.21 16:47:29
Proton 1.8.4 发布于2024.04.16,主要优化Proton SDK的性能。
使用内存替代磁盘文件缓存staging数据,优化小文件写入性能。
优化Proton Conf拷贝性能,减少读写过程中关于配置拷贝的性能损耗。
RawFileSystem支持Statistics功能,支持通过FileSystem Statistics获取读写指标。
Proton 1.8.3 发布于 2024.04.01。
Proton 1.8.2 发布于 2024.03.29。
Proton 1.8.1 发布于 2024.03.23。
Proton 1.8.0 发布于 2024.02.23。
支持针对不同目录设置黑白名单,更加灵活的控制数据是否需要被缓存到本地。
Proton性能优化
DataServer复用读取TOS数据的连接
MetaServer RocksDB默认参数优化
Proton 1.7.0 发布于 2024.01.03。
支持元数据自动同步功能(Lazy Meta Sync), 可将对象存储上历史数据的元数据同步到Proton MetaServer中。
针对Proton所使用到的网络链接进行复用,提升网络访问速度。
优化Cache模式下随机读性能。
Proton 1.6.2 发布于 2023.11.20。
提供 proton-distcp,支持跨fs,比如hdfs到tos的checksum校验。
优化rename语义,减少rename时所消耗的时间。
采用分段写入tos时的mulistage dir 支持多目录,以提升写入 tos fs 性能。
增加 MetaServer HTTP REST API,可通过WebUI的方式访问meta server,查看服务状态。
Proton-SDK模式下支持fuse的方式进行挂载。
优化解决并发场景下,缓存IAM Credential信息时,创建本地目录失败,多一次网络请求的现象。
Proton 1.6.0 发布于 2023.11.20。
针对网络异常引起的 TOS#head unexpected of stream 问题进行重试,提升作业稳定性。
TOS listObjects 使用 ListV2 接口,提升性能。
Proton 新增 cli 运维命令(fsck, sync, evict, load data)。
优化MetaServer在1000万文件数量下的性能。
修复 Spark 3.3.x版本使用log4j2版本,日志不显示的问题。
针对TOS 限流错误添加重试逻辑,提升任务稳定性。
Proton 1.5.3 发布于 2023.11.03。
Proton 1.5.2 发布于 2023.11.02。
Proton 1.5.1 发布于 2023.10.30。
支持用户为对象存储设置自定义的 scheme。
优化MetaServer降低机器资源使用。
MetaServer 修改 RPC 部分参数无法生效的问题。
优化Spark 生成的 Tasks 数比实际 Tasks 数多 3 倍的问题。
修复MPU过程中staging不是线程安全问题。
修复JobCommitter 在 CommitJob 阶段写 _SUCCESS 文件失败不会导致作业回滚。
Client侧支持自动failover,从data server读取数据出错时可以很方便地failover到TOS,提升数据读写任务的健壮性。
新增Fuse的支持,可以通过mount的方式将Proton cache挂载到某个目录。
新增Meta server监控指标,包括 QPS、latency、RocksDB访问QPS及延迟等。
Proton CLI支持显示block信息。
Client、data server从底层存储读取数据时,支持校验文件的checksum,保证数据读取一致性。
支持用户为对象存储设置自定义的 scheme。
提供 fs.tos.acl.default 选项使得用户可以设置子账号写object的 ACL。
Batch load元数据时,Ctrl-C无法停止load任务。
MetaServer 修改 RPC 部分参数无法生效的问题。
优化Spark 生成的 Tasks 数比实际 Tasks 数多 3 倍的问题。
修复 Spark 3.3.x版本使用log4j2版本,日志不显示的问题。
针对TOS 限流错误添加重试逻辑,提升任务稳定性。
优化访问TOS临时凭据的使用方式。
Proton 1.4.2 发布于 2023.09.26。
在DataTransfer链路实现Socket Connection Reuse,性能提升20%左右。
在DataTransfer侧实现TransferIO,大幅降低数据copy,数据传输性能提升24%左右。
SocketListener stop线程失败的问题。
ObjectOutputStream 写Part到staging dir的时候权限不足的问题。
使用对象存储进行MPU上传时,调整stage目录为可配置。
使用ConnectionCache组件优化缓存性能。
新增Proton meta server HA模式。
用 PacketIter 替换 ChunkIter,以避免过多的小堆对象。
使用ByteBuffer替换ByteArray进行性能优化。
Proton 1.4.0在1.3.0的基础上,做了如下变更:
DataServer支持基于内存的BlockCache。
DataServer读cache block时添加Block Meta Cache。
DataServer transfer线程模型优化。
DataServer默认异步加载block cache。
优化PositionRead,采用独立BlockReader。
优化proton内部配置转化逻辑,避免过多copy。
Proton支持metrics。
Proton命令行支持conf、daemon、loglevel选项。
新增audit log,可以方便追逐请求。
修复部分场景下Proton Committer magic path清理不干净的问题。
修复DataServer max transfer thread上限控制问题。
修复MetaServer中文解析问题。
Proton 1.3.0 发布于 2023.08.07,新增Proton cache模式,包含Meta Server 和 Data Server两部分,用户可以选择使用Proton SDK模式,直连TOS,也可以使用Proton Cache模式,将访问TOS的数据进行EMR集群内的缓存,火山EMR集群默认使用Proton SDK方式,如果需要使用缓存模式,需要在可选组件中安装Proton服务,同时针对1.2.2做了如下优化:
提升作业运行过程中,访问TOS时,申请临时凭据的稳定性。
hdfs的core-site的key: fs.tos.credential.provider.custom.classes
的默认值更新为:io.proton.common.object.tos.auth.EmrSidecarCredentialProvider,io.proton.common.object.tos.auth.EnvironmentCredentialsProvider,io.proton.common.object.tos.auth.SimpleCredentialsProvider,io.proton.common.object.tos.auth.IAMInstanceCredentialsProvider
Proton 1.2.2 版本在 1.2.1 的基础上做了以下修复:
支持 checksum 接口,例如在 distcp 下可通过 checksum 进行一致性检查。
修复 mkdir -p 创建父目录在 HDFS 与 TOS 行为不一致的问题。
优化 sdk 性能,按照 bucekt 粒度,缓存 TOS Client。
下载地址:
下载地址:
兼容 1.1-dev 版本的参数,可以在不修改 1.1-dev 参数的情况下,正常运行。
支持集成 Flink,Flink 可以通过 Proton SDK 写 TOS。
优化 TOS SDK stream close 问题,提升读写性能。
下载地址:
1.1-dev 为 Proton 的第一个生产可用版本,主要包含以下内容:
兼容 HDFS FileSystem 接口,在不改变用户行为的前提下,实现各个计算引擎,例如 Hive,Spark 对对象存储 TOS 中的数据进行读写操作。
提供了 MR 和 Spark 的 Job Committer,极大的提升了对象存储的写入速度。
提升流控稳定性,由于访问对象存储有具体的带宽限制,当达到带宽限制后,请求会出现等待,以及超时等问题,Proton 中对重试做了特殊处理,避免重试发生在作业的 Task 端,降低带宽限制引起的重试成本。