6.6Doris 分析案例(一): NoSQL 案例
关注点:如果自己开发分布式技术产品,如何开发,如何考虑关键点和设计,如何把设计通过文档的方式展现出来。
汇报点:架构师汇报工作,如何组织内容,如何呈现设计。
做新的技术产品,讲清楚:
1.当前现状:和技术产品相关的技术现状是什么样子的?现状有问题吗?为什么要做新的?而不是对现有的产品进行改造?为什么不使用开源的技术方案呢?
2.说服相关决策者,获得他们的支持。
3.让公司认为这是值得的。自己争取。
1.当前现状:
网站关键业务有许多海量KV数据存储和访问需求。
****站UDAS使用
存在问题:扩容困难,写性能较低,实时性低等。
网站有多套KV方案,接口不统一,运维成本高。
*****站UDAS-BDB
*****站:TT
飞天KV Engine(Aspara)问题:
使用复杂
性能较低
2.产品需求:
产品定位:海量分布式透明化KV存储引擎。
解决问题:
替换UDAS:解决扩容迁移复杂,维护困难的问题。
***站海量KV数据存储-------Global SEO,1以Product,2.4T数据量; ------>2011年底:3.1T
***站-----------------------WholeSale Golbal SEO,Product数1600W,2.8T------->2011年底:3400W,5.8T
***站-----------------------风控用户行为日志:每月2亿,40G,增长很快。
表达意思:需求是迫切的,问题是严重的,需要解决这些问题。如何解决呢?
3.产品目标:
功能目标:
KV存储引擎
逻辑管理:Namespace
二级索引
非功能目标:
海量存储:透明集群管理,存储可替换。
伸缩性:线性伸缩,平滑扩充。
高可用:自动容错和故障转移
高性能:低响应时间,高并发
扩展性:灵活扩展新功能
低运维成本:容易管理,可监控。
约束:
一致性:最终一致性。
4.技术指标:
目标 指标 说明
集群规模 4-100+ Machine
容量 100T+(取决于硬件规模) B2B所有KV存储场景
可用性 99.99+7%
持久性 10个9
伸缩性,平滑扩容------不停机扩容完成时间 约等于单Node迁移时间------------------10+1场景
10台扩容一台场景)
总数据量=2.4T
单Node迁移量=240G/10=24G
迁移时间=24G/33M=12分钟
高性能:-------------------------------------Read:<8ms
Write: <10ms
说明:到此,是否能够获得决策者的支持。如果能够获得支持,下一步:证明设计方案是可行的。
5.逻辑架构:
二层架构--------------Client,DataServer+Store
四个核心组件----------Client, DataServer, Store, Administration
6.KV Storage 概念模型:
Machine:物理机
Node:分区单元,一台Machine可运行多个Node
Namespace:数据的逻辑划分Tag,Client可识别。数据管理无需识别。
key=namespace+key.
namespace=申请时选择的namespace区分不同应用。
7.关键技术点--数据分区:
解决海量数据存储
客户端计算分区
分区算法(Partation Policy)
Client向Config Server榨取分区配置
8.基于虚拟节点的分区算法:
均衡性:数据分布均匀。
波动性:X/(M+X),优于一致性Hash的X/M。
评论