360自研Bada分布式存储系统:架构揭秘与实战应用

0 下载量 189 浏览量 更新于2024-08-29 收藏 687KB PDF 举报
360自研的分布式存储系统Bada,是360针对海量数据持久化存储需求而设计的一款NoSQL解决方案。作为设计者的分享,Bada的设计过程充满了折衷与权衡,旨在提供低延迟和高效的数据处理能力。尽管项目尚未完全开源,但部分组件如异步同步数据的Mario库已经对外公开,未来Bada也将逐步开源。 Bada的主要应用场景集中在对实时性要求较高的服务上,如线上热门应用的存储支持,由于系统采用最终一致性模型,不适合直接处理涉及金融交易等高敏感度的业务。推荐的数据大小限制为单个用户数据value不超过10k,以确保在1ms级别的低延迟。为了优化读取性能,建议使用SSD硬盘。 Bada被广泛应用于360公司的多个业务场景,例如云盘服务(日访问量数十亿次,数据量达到百亿级别),LBS服务(处理POI信息同步,每日请求量达十亿级别)。Bada的架构由BadaSDK提供给开发者使用,允许通过QConf配置管理服务获取可用的Bada节点。核心部分是DataServer,它借鉴了Amazon Dynamo的对等架构,每个节点均存储元信息和数据,以实现数据的冗余和高可用。 在设计上,Bada避免了MetaServer和DataServer分离的模式,而是选择了一体化设计,这样可以减少数据传输和查询的复杂性。然而,这种设计也意味着Bada需要面对更多的技术挑战,如一致性维护、负载均衡和故障恢复等问题。 尽管Bada面临着激烈的竞争环境,如BigTable、HBase、百度Mola等采用MetaServer架构,以及Cassandra等对等架构的系统,360团队通过不断的实践和优化,致力于打造适合自身业务需求的高性能分布式存储系统。随着项目的持续发展,Bada有望在业界展现出其独特的价值和竞争力。