从 0 开始学大数据
李智慧
同程艺龙交通首席架构师,前 Intel 大数据架构师,《大型网站技术架构》作者
71151 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 47 讲
智慧写给你的寄语 (1讲)
从 0 开始学大数据
15
15
1.0x
00:00/00:00
登录|注册

22 | 从阿里内部产品看海量数据处理系统的设计(下):架构与创新

永久失效
临时失效
瞬时失效
集群弹性可伸缩
失效分为三种情况
数据存储冗余备份
计算虚拟节点与物理节点的映射关系
基于虚拟节点的分区路由算法
申请成功一个专利会有奖励
公司对技术专利的支持
服务器集群规模达到数百台服务器
无故障运行了数年
集群伸缩设计
失效转移策略
分区路由算法
路由算法
连接控制中心Administration
应用程序KV Client启动后
分布式数据冗余与失效转移
分布式集群伸缩
分布式路由
Doris的源代码分析
Doris的分区路由算法的实现算法
专利申请
Doris的实践证明
Doris的核心技术
Doris的主要访问模型
数据存储部分转移出去,使用第三方软件完成
Doris是一种支持Key、Value数据结构的分布式存储系统
技术指标
设计目标
Doris的业务价值
Doris源代码地址
Doris产品申请的三个技术专利
思考题
Doris的架构方案和创新设计
Doris项目组必须证明自己有已经经过论证的架构技术方案
扩展阅读
阿里内部产品Doris的架构和创新

该思维导图由 AI 生成,仅供参考

上一期,Doris 提出了目前阿里巴巴海量 KV 存储方面的问题,给出了 Doris 的业务价值、设计目标和技术指标。但是 Doris 项目组还必须证明自己有已经经过论证的架构技术方案,可以实现前面设定的目标,立项后可以迅速启动执行,不需要再去摸索尝试,风险可以把控。
因此,PPT 后面的内容主要就是阐述Doris 的架构方案和创新设计
Doris 是一种支持 Key、Value 数据结构的分布式存储系统,核心要解决的问题是分布式路由、分布式集群伸缩、分布式数据冗余与失效转移。所以 Doris 把分布式存储系统很重要的一块,也就是数据存储部分转移出去,使用第三方软件完成,当时选择 Berkeley DB 作为 Doris 的底层存储 Store,Doris 自己专注于分布式技术实现。
Doris 的主要访问模型是,应用程序 KV Client 启动后,连接控制中心 Administration,从控制中心获得整个 Doris 集群的服务器部署信息及路由算法,Client 使用 Key 作为参数进行路由计算,计算得到集群中某些服务器作为当前 Key、Value 数据存储的服务器节点;然后 KV Client 使用自定义的通信协议将数据和命令传输给服务器上的 Data Server 组件,DataServer 再调用本地的 Berkeley DB 将数据存储到本地磁盘。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

阿里内部产品Doris的架构和创新方面的文章介绍了Doris的业务价值、设计目标和技术指标,以及其架构方案和创新设计。Doris是一种支持Key、Value数据结构的分布式存储系统,解决了分布式路由、集群伸缩、数据冗余与失效转移等核心问题。其创新包括基于虚拟节点的分区路由算法、失效转移策略和集群伸缩设计。这些创新技术在实践中得到验证,使得Doris系统能够稳定运行多年,经受住了服务器集群的多次扩容考验。此外,文章还提到了公司对技术专利申请的支持和奖励政策,鼓励工程师积极申请技术专利。总的来说,本文通过介绍Doris的架构和创新设计,为读者展示了分布式数据存储系统的技术挑战和设计开发过程,为工程师提供了技术提升和职业发展的启示。 Doris的分区路由算法在设计时提出了一个数学模型计算虚拟节点和物理节点的映射关系,但在开发过程中并未使用该模型进行计算。可能的实现算法包括基于哈希函数的映射算法或基于一致性哈希的路由算法。通过分析Doris的源代码,可以发现其最终实现算法与数学模型可能存在差异,具体差异需要进一步深入研究源代码才能得出结论。 总的来说,Doris的架构和创新设计展现了其在分布式存储系统领域的技术优势和稳定性,为读者提供了深入了解分布式数据存储系统技术挑战和解决方案的机会。同时,公司对技术专利申请的支持和奖励政策也为工程师提供了积极的创新动力和职业发展机会。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《从 0 开始学大数据》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(23)

  • 最新
  • 精选
  • 玉剑冰锋
    您好老师,请教几个问题1.架构设计中数据压缩比及数据存储时效策略是如何设计的?2.数据的完整性如何验证?3.后期运行过程中尤其是某个节点存储空间低于其他节点时,是否会发生数据倾斜的问题?

    作者回复: 1.Doris没有做数据压缩 2.Doris当时版本没有做完整性(正确性)验证,但是可以简单做多读,然后进行数据对比验证,不过这样要求的数据备份数要更多。 3.不会,路由算法保证负载均衡,但是如果虚拟节点数和物理节点数相差不大时,会有数据倾斜,所以要求一开始设计的虚拟节点要足够多,是未来最大物理节点数的十倍以上

    2018-12-18
    9
  • 观弈道人
    老师你好,请问下,关于fail over部分,物理节点1,物理节点2是分别存储两片数据,当物理节点2挂掉的时候,文章中说物理节点1提供所有的read操作,我想问的是,节点1,2负责两片不同的数据,节点1如何承担原本访问节点2的读操作?谢谢。

    作者回复: 分片在group内分片,这里节点1,2分属不同group,存放的是同一份数据的两个拷贝

    2018-12-18
    2
  • 和redis的分片方式类似呀😄,你是虚拟节点,她是哈希槽。和一致性哈希也挺像的,只是虚拟节点和物理节点的映射更加的灵活可控。 老师牛逼,致敬!

    作者回复: 谢谢😄

    2019-09-28
    2
    1
  • weiruan85
    老师,文章中还有几个重要的问题没有提交:1. 这种设计下,cap是如何抉择的。 在发生网络分区的时候,是选择C 还是A ? 按照文章中的内容,感觉Doris没有采用逻辑日志复制的技术实现,而是采用了双写的实现思路,当时在设计时为什么这么考虑呢。 如果是双写,那么cap理论是不是就不太适用了,备份的数据和primary数据一定是一致的。 当网络发生分区后,执行故障转移,一直保证数据的一致性。

    作者回复: 在临时失效和恢复过程中,同一份数据的值在不同服务器上可能是不同的,不满足CAP中的C。但是Doris会选择正确的服务器读取数据,保证用户访问的数据是一致的,即用户一致性,失效恢复结束,多个数据拷贝的值也会恢复一致,即最终一致性。

    2019-08-02
    1
  • William
    还有一个疑问请帮忙解答一下: 在集群伸缩设计方案中,假如一开始只有两台物理机,有10000个虚拟节点,那么每台物理机各存储5000个虚拟节点的数据;现在增加一台物理机,那么最后的数据存储效果是物理机分别存储5000,2500,2500个虚拟节点的数据吗?这样算不算数据倾斜?

    作者回复: 虚拟节点数分别是3333 3333 3334

    2018-12-19
    1
  • Jun
    李老师,你好。感觉老师是山西人。如果是,那么老乡你好。这一章的数学公式是从物理节点映射的虚拟节点。实际请求到来时,应该是虚拟节点到物理节点,有公式吗?还是直接用一个映射表?另外使用一致性哈希加虚拟节点也是比较好的方案,不需要复杂的节点映射了。亚麻的dynamo就是这么做的。

    作者回复: 有公式,具体可以参考专利文献 http://www2.soopat.com/Patent/201110294092?lx=FMSQ 或者项目源码。 这个算法相对一致性hash的优势文中有比较。

    2020-01-05
    2
  • vigo
    智慧书,不仅说技术,还育人😄
    2019-01-28
    16
  • 你为啥那么牛
    遵循老师的5-20-2原则,5分钟没看进去,放弃,等待下一次偶遇
    2021-03-06
    1
    14
  • 吴小智
    专栏真的是从 0 开始学大数据吗?看哭了,只能看懂一二两章
    2019-07-17
    12
  • 大京京
    有部分ppt内容是不准确的。新增一个物理节点,你前面说的算法是无法保证key1的路由节点pn1不移动的。只是数据迁移的时候,你是每个现有节点都各自迁移自己的一部分去新节点,现有节点之间不做迁移而已。
    2019-01-23
    4
收起评论
显示
设置
留言
23
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部