21|业务缓存:元数据服务如何实现?
徐长龙
该思维导图由 AI 生成,仅供参考
你好,我是徐长龙。
当你随手打开微博或者一个综合的新闻网站,可以看到丰富的媒体文件,图片、文本、音频、视频应有尽有,一个页面甚至可能是由成百上千个文件组合而成。
那这些文件都存在哪里呢?通常来说,低于 1KB 的少量文本数据,我们会保存在数据库中,而比较大的文本或者多媒体文件(比如 MP4、TS、MP3、JPG、JS、CSS 等等)我们通常会保存在硬盘当中,这些文件的管理并不复杂。
不过如果文件数量达到百万以上,用硬盘管理文件的方式就比较麻烦了,因为用户请求到服务器时,有几十台服务器需要从上百块硬盘中找到文件保存在哪里,还得做好定期备份、统计访问记录等工作,这些给我们的研发工作带来了很大的困扰。
直到出现了对象存储这种技术,帮我们屏蔽掉了很多细节,这大大提升了研发效率。这节课,我们就聊聊存储的演变过程,让你对服务器存储和对象存储的原理和实践有更深的认识。
分布式文件存储服务
在讲解对象存储之前,我们先了解一下支撑它的基础——分布式文件存储服务,这也是互联网媒体资源的数据支撑基础。
我们先来具体分析一下,分布式文件存储提供了什么功能,以及数据库管理文件都需要做哪些事儿。因为数据库里保存的是文件路径,在迁移、归档以及副本备份时,就需要同步更新这些记录。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
对象存储服务的出现解决了分布式文件存储服务中的一些问题,使得研发人员能够更专注于业务开发。对象存储服务通过屏蔽底层实现细节,简化了文件管理和读写操作,提供了更简单、灵活的API方式管理文件对象,同时还提供了文件的索引管理与映射,使得管理数据和媒体文件更加便利。然而,对象存储也带来了一些新的挑战,如管理大量碎片化的小文件需要更多的管理策略和工具。本文还介绍了对象存储如何管理小文件和大文本,以及对象存储在文件的云中转和容灾方面的应用。通过对比传统存储方式,文章强调了对象存储的优势,如精简设计、降低磁盘维护的运维投入和维护成本。最后,文章提供了一些常用的对象存储项目,并呼吁读者对对象存储展开更深入的探索。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《高并发系统实战课》,新⼈⾸单¥59
《高并发系统实战课》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(4)
- 最新
- 精选
- Elvis Lee提问:老师,作为文件存储,k8s部署MinIO集群这方案的优劣可以讲解一下吗。目前在仿真链路测试过,但还没上生产,想了解一下
作者回复: 你好,简单说说印象,不支持append,meta,检索是前缀检索,检索的事时候会遍历前缀下面所有key,存储上比较浪费磁盘空间,上传下载速度算不错的,但是集群最大32个节点。系统架构简单,兼容amazon s3接口。附带一个测评参考,来自infoQ写作社区: https://xie.infoq.cn/article/a4be7d968ce22f31020427e65
2023-02-15归属地:上海1 - Geek_3c848e想请问“小文件压缩到大文件块里保存,小文件更新数据时,直接新建一个文件来更新内容。定期整理数据的时候,才会把新老数据合并写到新的块里,清理掉老数据”,这是否就是SSTABLE?
作者回复: 你好,这个是指leveldb中吗?这个合并技巧在存储行业比较流行,多数是解决小文件太多问题用的,在leveldb中数据是排序的和存储还有些不同
2023-04-10归属地:北京 - 若水清菡分布式存储通过文件块作为单位来保存管理小文件,当我们对文件内容进行更新时,如何刷新这个文件的内容呢? 文中说到 “为此我们通常会在小文件更新数据时,直接新建一个文件来更新内容。定期整理数据的时候,才会把新老数据合并写到新的块里,清理掉老数据。”,对文件内容更新时,刷新这个文件的内容其实就是重新生成一个新的文件块的过程。
作者回复: 你好,若水,说的没错,同时要更新索引,索引的数据要有多个版本方便回滚,并且数据长度如果不变的话不做多版本的话直接覆盖,同时建议全量修改不支持随机修改
2023-01-25归属地:北京 - thinkpc这里留个脑洞,如果我们的数据库也按对象存储方式思考,缩减掉所有复杂的操作,是否也可以抽象出新的机遇~2022-12-28归属地:北京
收起评论