IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

标签:Distributed Storage

共 6 篇相关文章

IT 累计浏览 2,562

UMStor Hadapter:大数据与对象存储的柳暗花明

这篇讲的是大数据存储里一个经典矛盾的解决方案。作者从武侠江湖的比喻切入,指出数据湖架构也分“计算存储融合”(以HDFS为代表)与“计算存储分离”(以S3A+Ceph对象存储为代表)两大派系。前者有数据本地性优势,但NameNode易成瓶颈且弹性差;后者扩展灵活,但所有请求必须经过RGW网关,多了一跳,影响性能且不支持追加上传。 文章的核心亮点在于提出了一条“柳暗花明”的路径。作者团队受NFS-Ganesha启发,利用Ceph提供的librgw函数库,绕过了RGW网关这一中间环节。据此开发的Hadapter插件,能让Hadoop客户端直接通过librados与OSD通信。这相当于在保留对象存储管理优势的同时,借鉴了HDFS直接交互的思路,在IO路径上少了一跳,理论上能获得更好的读写性能,并补齐了社区版S3A在追加上传上的短板。 摘要最后可以简要提及Hadapter的部署便利性(一个jar包)和其作为Hadoop存储插件的定位,让读者对这个方案的具体形态有个直观了解。整篇文章的脉络是从问题拆解到方案融合,对架构选型有切实参考价值。

IT 累计浏览 2,801

Openstack Swift简介

这篇讲的是 OpenStack 的核心对象存储服务——Swift 的设计哲学与实现原理。它要解决的核心问题,是如何在相对廉价的标准硬件上,构建出一个能承载海量非结构化数据的高可用、可无限扩展的存储系统。 文章深入解析了 Swift 的几个关键设计。为了解决海量数据的寻址难题,它采用了一致性散列技术,并通过一个名为“Ring”的独特数据结构,将数据均匀映射到物理设备上,在增减节点时大幅减少数据迁移。更精妙的是其一致性模型:Swift 在 CAP 理论下选择了“最终一致性”,通过 Quorum 仲裁协议(默认配置3副本、写需2个成功)来平衡可用性与一致性,以适应读写频繁的互联网场景。其清晰的数据模型(账户/容器/对象)和对称、无单点的系统架构,则进一步支撑了其多租户和横向扩展能力。 整体来看,文章从背景原理到架构细节,清晰地勾勒出了一个用软件层面的精巧设计(如一致性散列、Quorum协议)来弥补硬件简陋、并最大化可用性与扩展性的经典分布式系统范例。

IT 累计浏览 2,144

数据映射–映射概述

作者从“映射”这一计算机基础数据结构出发,梳理了从CPU到文件系统无处不在的映射关系。文章首先明确了映射的数学定义,并列举了它在查找文件、网络数据、数据库记录等场景中的关键作用。 接着,作者用一组简单对应(如2->4, 1->2)作为示例,对比了三种实现映射的方式:使用集合(如数组)存储键值对、定义一个数学函数、以及编写穷举算法。文章指出,后两种方式因需理解数据规律或硬编码而适用性有限,从而将讨论聚焦于更通用的集合类数据结构。 为了优化最基础的数组线性遍历效率低下的问题,文章深入介绍了两种核心的查找算法:要求数据有序的二分查找(时间复杂度O(log₂N)),以及利用哈希函数实现近乎O(1)效率的哈希查找。作者以哈希查找为例,解释了如何通过键值计算快速定位,并详细说明了“哈希碰撞”问题及使用链表解决的常见方法。 最后,文章总结道,不同的应用场景(如是否需要范围查询、自动扩展、磁盘存储或并行处理)将决定对映射集合的具体技术选择,而这些底层选择正是各类数据库性能差异的根源。

IT 累计浏览 3,821

SNS 背后的技术: 消息流的推拉模式选择

这篇文章深入对比了SNS消息分发的推模式与拉模式,从技术实现、资源消耗到用户体验进行了全面剖析。 作者从传统通信的推模式(如短信)在SNS场景下遇到的挑战切入,引出了拉模式作为更节省存储的替代方案。文章的核心在于辩证地分析了两种模式的优劣:拉模式在存储效率上能实现百倍级节省,并更有利于处理垃圾信息、好友关系变更、隐私权限修改等复杂的“删除与修改”操作;而推模式在保证信息即时性、减少登录后延迟方面有理论优势,但面临巨大的缓存维护成本和一致性挑战。 文章并未止于理论推演,而是结合了对Twitter、Facebook、新浪微博、QQ空间等主流平台的公开信息与现象观察,指出了各平台在推拉选择上的实际权衡。例如,新浪微博的拉模式有助于快速应对大规模删帖需求,而Facebook对离线用户采用拉模式则体现在登录时News Feed的短暂加载上。 最后,文章通过具体的数据模型计算,直观展示了在不同用户规模和行为模式下,推拉模式对缓存资源和网络开销产生的巨大影响。作者犀利指出,推模式下频繁的缓存修改操作会“让cache痛不欲生”,而一个设计良好的拉模式配合临时缓存,往往能在性能、成本与灵活性上取得更好的平衡。

IT 累计浏览 3,063

Microsoft Azure存储架构设计

这篇讲的是微软Azure如何设计其存储架构,特别是以SQL Azure为例的深度剖析。文章从云环境下数据存储面临的一致性、可用性与可扩展性平衡挑战出发,揭示了微软在应对超大规模数据场景时的核心设计思路。 作者深入剖析了Azure Storage所采用的“存储计算分离”架构,重点阐释了其底层如何通过分布式文件系统(如Cosmos)实现数据冗余与分发,并在此之上构建出高效可靠的Blob、表、队列等存储服务。文章特别点明了这种设计带来的关键优势:计算资源可以按需独立于存储进行弹性伸缩,从而更灵活地匹配业务负载。 此外,文中还探讨了SQL Azure如何依托此基础架构,将传统的数据库功能“云化”,并确保了企业级的高可用与灾难恢复能力。通过具体的架构组件与流程说明,文章清晰地呈现了Azure存储系统为现代云原生应用提供的坚实、灵活且高性能的数据基石。

IT 累计浏览 10,902

淘宝图片存储架构

这篇讲的是作者花一小时阅读章文嵩博士的《淘宝海量图片存储与CDN系统》后的学习心得。作者坦言自己没有大容量存储或分布式应用的实战经验,但这次阅读让他从宏观角度思考了未来可能的学习路径。 淘宝图片存储架构的核心挑战在于处理海量图片的存储和高效分发。面对每天数亿张图片的上传与访问,系统