对象存储服务的压缩特性

在对象存储服务中集成压缩算法,可以有效节省最终占用的空间,提升介质的利用效率,提高存储的收益。
选择压缩算法时,通常综合考虑对象的格式、访问频率、访问时延、存储服务的负载、存储服务器的硬件规格、存储介质的规格等。
对于高压缩比的文本类数据,通常建议在客户端应用侧完成压缩,这样除节省存储空间,还节省了传输带宽和网络传输引入的时延。
对于二进制类的文件,考虑到压缩的收益比较低,通常不建议进行压缩。
对于访问频率较低的归档类的冷数据,通常选择高压缩比的压缩算法,有助于节省空间。
对于访问频率中等的温数据,初期可采用解压吞吐量高的压缩算法,待访问量逐渐下降到一定程度之后变为冷数据,此时在后台任务中逐步转换为采用高压缩比的算法,同时兼顾访问效率和存储空间的利用率。
对于已压缩的对象,假如一定时间内访问频率超出阈值,可以还原一份非压缩的副本,通过空间换时间的方式,改善访问效率。
对于大量的小文件,比如小于1MB,可以考虑采用先聚合再压缩的策略,改善压缩算法的工作收益。
对于大的文件,比如超出10GB,可以依据压缩算法的特点,拆解为多个块,同时压缩,充分利用硬件,缩短压缩算法的工作时间,同时也可以改善访问时解压文件的效率。

实现时的关注点,如下:

  • 数据的格式
    • 文本,比如TXT、XML、INI、PROPERTIES、CSV、JSON、YAML等
    • 二进制,比如图片、视频、音频、可执行文件等
  • 压缩的算法
    • 无损压缩
    • 有损压缩
  • 压缩算法的评估指标
    • 吞吐量
      • 压缩时吞吐量
      • 解压时吞吐量
    • CPU使用量
    • 内存使用量
    • 硬盘使用量
    • 压缩比率
  • 常见的压缩算法
    • gzip
    • bzip2
    • zip
    • lzw
    • snappy
    • zstd
  • 专用的压缩算法
    • H264
    • MPEG2
    • MPEG4
    • JPEG
  • 执行压缩操作的位置
    • 客户应用
    • 对象SDK
    • 对象存储服务
  • 执行压缩的时机
    • 写入时压缩
    • 后台压缩
      • 对于未压缩的对象,在创建后、访问频率较低,可在后台任务中转换为压缩文件,节省存储空间
      • 对于已压缩的对象,访问频率超过一定阈值,可在后台任务中创建一个非压缩的副本,通过空间换时间的方式来提升访问效率
  • 压缩的粒度
    • 以文件为粒度,执行压缩
    • 以数据块为粒度,执行压缩
  • 压缩算法的选择
    • 针对所有的文件,使用统一的压缩算法
    • 依据文件类型的特点,使用特定的压缩算法
    • 由客户指定压缩算法

参考资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小南家的青蛙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值