邹方明:看腾讯云如何架构海量存储系统
时间:2022-04-21
本文章向大家介绍邹方明:看腾讯云如何架构海量存储系统,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
回首腾讯云存储十年的历程,腾讯云存储业务中心总监邹方明将其划分为四个阶段:萌芽时代、图片时代、视频时代和云时代。
腾讯云存储面临的第一个大挑战正是在UGC图片时代兴起之初。当时,传统的三层储存架构模式在性能、IO及成本方面都明显难以招架海量的日志和图片上传。腾讯云存储适时推出了系统自动化运营方案,通过实时监测物理区域,在3秒内就能做出反应,对校表储存量超过80%的存储磁盘进行扩容,极大地节省了传统扩容方式所耗费的时间与人力。
但在自动化扩容运营系统基本适应图片时代后,新的问题开始出现:当空间、动态以及QQ、朋友圈相册每天上传量高达20亿级别的时候,文件删除量也达到了50%,之前设计的磁盘条带化整理系统遭受挑战。为了便于磁盘的自动回收,腾讯云存储将磁盘分成同等大小的空间并进行分片分头的整理,留存出10%到15%的冗余利用率,解决了当时的问题。
当腾讯云存储的数据储存增长量在四年时间内从100P到1000P,腾讯云存储接到的需求也不断增多。面对超大容量源文件存储设备消耗量大、维护成本高的问题,腾讯云存储通过文件压缩、转码、解码的方式,将一个文件一个索引转换为多级索引,每个级别索引仅代表一个小分片,把这些小分片累积起来以支持更大的存储,强力解决了这一问题。同时,腾讯云存储通过设计纠删码的方式,为文件留出3—4份纠删冗余并分别存在多台设备里,最终使文件存储大小压缩到1.3—1.4份,极大的减少了原先存储的设备量。
同时,这一纠删码技术也运用到信息安全保障中:在单地数据中心出现问题时,这一技术能保障另一共存数据中心能及时完整地进行数据的整合并恢复归档,在降低成本的同时,极大程度地保障数据的安全。
点击下载演讲资料:
- JAVA基础知识点:内存、比较和Final
- python django 学习(一)数据库 目的根据已有BBS建立新的网站步骤
- SpringMVC中@RequestMapping的基本用法
- Java面试系列13
- 【Go 语言 时间相关操作 demo】
- redis AOF保存机制
- 用 TensorFlow 让你的机器人唱首原创给你听
- 不用synchronized块的话如何实现一个原子的i++?
- Oracle升级中的参数补充(r9笔记第2天)
- 【Go 语言,服务器模块】日志系统源码
- wait方法和sleep方法的区别
- Java面试系列10
- python django整理(三)页面基础(仿BBS)
- 高并发场景下的httpClient优化使用
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- springmvc中@PathVariable和@RequestParam的区别
- centos7 安装mysql5.6
- bashdb安装及调试shell脚本
- linux awk指令详解
- linux sed指令详解
- Grafana使用zabbix自定义模板
- linux shell之变量的使用规则
- 第11期:压缩表
- grafana-zabbix插件安装和配置zabbix mysql
- grafana使用教程之API key
- Grafana使用教程之安装
- Java基础数据类型之包装类equals和==详解
- SCP不用密码传输文件
- Java 使用Collections.reverse对list集合进行降序排序
- Liquibase异常 mysql数据库 Cannot add foreign key constraint