分布式存储和分布式计算两个哪个更适合作为工作深入方向发展?

有朋友问,分布式存储比如hdfs,ceph,minio,tidb,glusterfs;分布式计算比如Hadoop,spark,flink;它们在实际工作中咋样?具体开发工作是啥?哪个更有发展前景?

其实,计算与存储是相辅相承的关系。

千万不要听那帮二杆子们在各种PR稿中说的:存储与计算分离。

这个概念最早是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之上,都可以。

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

最后,不能免俗的,同时也向大家分享下:嬴图(Ultipa)的微秒级、高密度并发图计算与存储架构的一些核心点:

Hope ya-all will enjoy this.

  • 15
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
自动控制节水灌溉技术的高低代表着农业现代化的发展状况,灌溉系统自动化水平较低是制约我国高效农业发展的主要原因。本文就此问题研究了单片机控制的滴灌节水灌溉系统,该系统可对不同土壤的湿度进行监控,并按照作物对土壤湿度的要求进行适时、适量灌水,其核心是单片机和PC机构成的控制部分,主要对土壤湿度与灌水量之间的关系、灌溉控制技术及设备系统的硬件、软件编程各个部分进行了深入的研究。 单片机控制部分采用上下位机的形式。下位机硬件部分选用AT89C51单片机为核心,主要由土壤湿度传感器,信号处理电路,显示电路,输出控制电路,故障报警电路等组成,软件选用汇编语言编程。上位机选用586型以上PC机,通过MAX232芯片实现同下位机的电平转换功能,上下位机之间通过串行通信方式进行数据的双向传输,软件选用VB高级编程语言以建立友好的人机界面。系统主要具有以下功能:可在PC机提供的人机对话界面上设置作物要求的土壤湿度相关参数;单片机可将土壤湿度传感器检测到的土壤湿度模拟量转换成数字量,显示于LED显示器上,同时单片机可采用串行通信方式将此湿度值传输到PC机上;PC机通过其内设程序计算出所需的灌水量和灌水时间,且显示于界面上,并将有关的灌水信息反馈给单片机,若需灌水,则单片机系统启动鸣音报警,发出灌水信号,并经放大驱动设备,开启电磁阀进行倒计时定时灌水,若不需灌水,即PC机上显示的灌水量和灌水时间均为0,系统不进行灌水。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值