写点什么

6.6Doris 分析案例(一): NoSQL 案例

用户头像
张荣召
关注
发布于: 2020 年 11 月 02 日

关注点:如果自己开发分布式技术产品,如何开发,如何考虑关键点和设计,如何把设计通过文档的方式展现出来。

汇报点:架构师汇报工作,如何组织内容,如何呈现设计。



做新的技术产品,讲清楚:

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。



用户头像

张荣召

关注

还未添加个人签名 2018.05.02 加入

还未添加个人简介

评论

发布
暂无评论
6.6Doris分析案例(一):  NoSQL案例