修改密码

请输入密码
请输入密码 请输入8-64长度密码 和 email 地址不相同 至少包括数字、大写字母、小写字母、半角符号中的 3 个
请输入密码
提交

修改昵称

当前昵称:
提交

申请证书

证书详情

Please complete this required field.

  • Ultipa Graph V4

Standalone

Please complete this required field.

Please complete this required field.

服务器的MAC地址

Please complete this required field.

Please complete this required field.

取消
申请
ID
产品
状态
核数
申请天数
审批时间
过期时间
MAC地址
申请理由
审核信息
关闭
基础信息
  • 用户昵称:
  • 手机号:
  • 公司名称:
  • 公司邮箱:
  • 地区:
  • 语言:
修改密码
申请证书

当前未申请证书.

申请证书
Certificate Issued at Valid until Serial No. File
Serial No. Valid until File

Not having one? Apply now! >>>

ProductName CreateTime ID Price File
ProductName CreateTime ID Price File

No Invoice

老边谈图 | 9、分布式存储和分布式计算哪个更适合作为工作方向深入发展? - 嬴图
2024-04-02
老边谈图 | 9、分布式存储和分布式计算哪个更适合作为工作方向深入发展? - 嬴图

大家好,见字如面。我是教授老边。本专栏将基于我个人的观察,为大家带来关于图数据库技术的分享。从基础概念出发,深入剖析算法逻辑,分享实际应用案例,探讨市场现状,展望未来趋势,希望能为大家带来图相关知识,引发思考与启发。让我们一同踏上这场图数据库技术的探索之旅 。

最近收到一个盆友的问题:分布式存储和分布式计算哪个更适合作为一个工作方向来进行发展?它们在实际工作中咋样?哪个更有发展前景?老夫其实对此有过诸多论述,今天就这个问题快速进行一个厘清,也希望对大家有所帮助。

其实,计算与存储是相辅相成的关系。千万不要听那帮二杆子们在各种公关文章中所说的——存储与计算分离。

这个概念最早是EMC提出的(今天叫Dell EMC了,2015年的这笔760亿美金的收购是科技发展史上最大的收购——折合RMB~5000亿)。事实上,存储从来与计算都是分离的 ——以冯·诺依曼架构为例,CPU与(持久化)存储的距离是非常遥远的,如下图所示:

从逻辑(与实际的硬件配置匹配)上,自上而下,存储可以分为7层:

  • CPU
  • DRAM
  • Persistent Memory
  • Performance SSD or NVMe-SSD
  • SSD (Capacity SSD)
  • HDD
  • Network Storage (所有的NAS,还是任何其它类型的分布式存储全在这个category里面)

当然,很多人不理解CPU与DRAM为什么也会在存储架构中,呵呵。有啥难以理解的,现代的CPU,尤其是企业级PC服务器,大多还有2-3级缓存呢,学过汇编的同学一定知道,你怎么调用的各种寄存器(registers),所有的数据,最终不还是要流经CPU的,也会先流入Layer 1-to-3 Cache……

同样的道理,为了让系统的整体吞吐率更高,更加高并发,更快,延迟更低,用上图这种“多级存储加速”(Multiple Layer Storage Acceleration) 来让数据更快地从下层的存储流入、流经CPU是任何高性能系统所要核心关注的问题。

记住,从CPU自上而下到网络存储层,是至少1,000,000(壹佰万!)倍的性能差异。

为什么我们常说很多大数据系统根本不是高性能系统,早就应该在各个行业中被淘汰了?首推Hadoop,甚至Spark都不是什么真正的高性能系统,还有很多所谓的也打着高性能标签的系统,例如那些性能平平的列数据库们——仔细想想,对数字敏感一点,一个简单的原子级的操作,如果是毫秒级,它已经让在纳秒级工作的CPU白白空转了1,000,000次了!

因此,市场那些到处宣称毫秒级操作的系统,在实际的商业应用环境中,一定很慢很慢!因为,那些真实的需求、操作,包括一些批处理,动辄都需要数以万次甚至百万次的原子级操作组合而成,简单的数学:毫秒级 100万次 = 1000-100万秒!1毫秒100万次= 1000秒= 0.3小时,而1000毫秒*100万次 = 100万秒= 12天 = ~半个月。

大家知道为何很多银行的系统动辄需要T+1, T+2甚至T+7了吧?就是因为底层的那些号称“毫秒级”的数仓太慢!

千万不要低估“指数级”性能提升的意义!

真正高性能的系统,一定很少,必定是在微秒级工作的!那么上面的T+1会变成实时化,T+7会变成近实时(秒级)。

搞过高性能存储系统的专业人士会很清楚的一点:存储靠近计算(Storage Close to Compute)才是根本——如何靠近计算呢?上面已经回答了:多级存储加速。

现在我来回答下工作的问题:

真正到了底层,无论是存储还是计算都有很多细节与挑战,例如:

计算:对于数据结构、算法时延、算法复杂度、分布式系统架构、计算机体系架构要有清晰、明确的认知 ,并且写高并发计算程序的复杂度也很高。

存储:对于文件系统或者存储硬件的特性要有深刻的理解,plus上面计算的所有诉求也一样要了解。

简单而言,搞存储的人一定少于搞计算的,但是到了极致,都已经是万中无一的。毕竟绝大多数人根本不会触碰到底层的东西,更别说能把事情的来龙去脉都梳理的明明白白的了。

另,需要澄清的一点,现在大家都喜欢把分布式导出修饰任何系统或名词。但准确的说,这就跟说某项目开源一样,很多开源都是伪开源,根本没有开源全部代码,到了底层都是一堆.so(动态链接库),然而99.9%的人不求甚解,跟着瞎起哄。开源很多时候与其说是什么GP家国情怀,不如说是Marketing/PR(市场/公关)甚至是彻头彻尾的骗局。

分布式系统如果不是高性能的,根本没有任何意义。如何高性能分布式呢?就是不要用40台或者400台机器,平均每台机器只跑1-2个线程来吹NB说他这个分布式特别厉害——你有种让每台机器可以跑满40线程来?400*40 = 16000线程,这个是底层硬件的并发计算能力,然而,现在的这些数仓或者大数据框架们,也就能用到不到1000个线程,这是对计算资源的90%+的浪费!可耻!

研究高密度并发(High Density Parallel Computing)是非常有价值的一件事情——能充分释放底层的高并发的算力,无论是在CPU还是GPU,还是什么TPU/NPU、XPU之上,都可以。

先精钻,再泛化,不失为一条可行之路。

最后,也向大家分享下嬴图的微秒级、高密度并发图计算与存储架构的一些核心点:

Hope ya-all will enjoy this.

文/教授老边
HPC高性能计算与存储专家、大数据专家、数据库专家及学者