很久之前有个客栈,由于客流量众多,所以有两个人在前台负责办理入住退房。他们共同维护了一个bitmap,凡某间房已入住,则标记一个黑点,白点表示该房无人住。
但是这个bitmap只有一份,两个人都要使用,很不方便。于是将其复制了一份,每人各记录各的。这就产生了问题,这两个人相互都不知道哪间房退房了以及哪间空房被入住了。于是他们约定,在更改bitmap时,要向对方吼一声,对方把接收的变更落地到自己本地的bitmap中。
这故事,听起来是不是有些耳熟?
这不就是区块链的部分原理吗?第一个占据某个节点的人要在系统内广而告之,宣布此节点名花有主,系统内所有人都会收到消息,转而开始对下一个节点的进攻。
今天小编并不想说区块链,而是一致性
凡分布式系统,都不可避免地要应对一致性要求。
但在分布式系统中,很少有产品启用缓存。因为除了需要采用NVRAM/NVDIMM来做掉电保护之外,最重要的是解决分布式缓存的一个关键问题——Cache Coherency(缓存一致性)。
? 这个问题,戴尔易安信Isilon解决了。
一骑绝尘的横向扩展NAS.....
戴尔易安信的Isilon是一个分布式集群NAS系统,支持主流的网络文件系统、对象、REST、SWIFT、HDFS等访问协议。Isilon系统分为三个子型号:F、H、A。
Isilon F800 All-Flash▼
Isilon还拥有一系列的数据管理软件功能,包括:INSIGHTIQ、SMARTPOOLS、SMARTQUOTAS、SMARTCONNECT、SNAPSHOTIQ、CLOUDPOOLS、SMARTDEDUPE、SYNCIQ、SMARTLOCK、ASPERA。
Isilon的核心是OneFS集群文件系统。作为一个分布式、对称式、并行集群文件系统,OneFS将传统存储体系结构的文件系统、卷管理器和数据保护三层合并为一个统一的软件层,从而构建了一个跨集群中所有节点的单一智能文件系统。
分布式缓存的挑战.....
OneFS属于对称式集群,这意味着任何一个节点均可以承载I/O访问,由此也带来一个问题,比如节点1和节点2同时缓存了数据A,Host1向节点1发起写请求更改了数据A为B,那么此时节点2上的数据A就必须立即作废。
我们不妨先看看PowerMax这个分布式集群SAN系统是如何处理缓存一致性问题的。戴尔易安信的PowerMax采用Hash方式来确定某个数据块唯一的缓存节点,这样就不存在缓存一致性的问题,但代价是需要跨节点产生数据流量,而不仅仅是控制流量,因为此时数据需要在多个节点中传来传去。
比如数据块A只能缓存在节点1,如果节点2需要访问数据块A,则先计算Hash得出数据块A所在的节点,然后向该节点发送请求让其传递数据块A的部分或全部到节点2,再将数据发送给Host端,同时节点2将数据块A从其本地缓冲区删除,不能作为下次访问使用,因为节点2根本不知道数据块A在其他节点上是否已经发生了变化。
Isilon如何实现缓存一致性.....
这时大家自然想到,如果数据块A的变化情况能让集群中所有节点都知道,广播出去,不就可以保证数据一致性了么?
没错,多核心多CPU其实也是一个分布式集群,它就是这么管理缓存的,借助于核间、片间高带宽低时延网络,能够让分布式缓存的访存时延降低到一个可接受的范围内。缓存一致性协议规定了多个缓存之间在什么时候传送什么消息、以什么方式问答等。比如Intel使用MESIF协议,AMD使用MOESI协议。
Isilon的OneFS采用了与CPU类似的缓存一致性协议实现了缓存一致性,而开发这套协议需要相当的技术水平。
Isilon采用Infiniband互联,以Sockets Direct Protocol (SDP) over InfiniBand (IB)实现节点间同步,采用MESI协议实现缓存一致性。
MESI表示每个缓存行的4种状态:
M – Modified: The data exists only in local cache, and has been changed from the value in shared cache. Modified data is typically referred to as dirty.
E – Exclusive: The data exists only in local cache, but matches what is in shared cache. This data is often referred to as clean.
S – Shared: The data in local cache may also be in other local caches in the cluster.
I – Invalid: A lock (exclusive or shared) has been lost on the data
每个节点均记录本地缓存行的状态,决定是否要发出广播。比如访问一个E状态的缓存行,就无需通知其他节点,因为E表示该缓存行只存在于本地,其他节点没有缓存。
不得不说,Isilon通过软件把CPU集群所采用的缓存一致性协议搬移到了集群节点间,这种正宗的分布式缓存实现,在市面上的分布式集群系统中是不多见的。所谓品质决定市场表现,Isilon之所以能成为全球存储市场上的横向扩展架构典范,与其独特的开创性特色是分不开的。
好文章,需要你的鼓励
当前软件工程团队正在试验基于AI代理的编码工具和大语言模型,以提高开发速度和质量。然而,AI编码工具的效果很大程度上取决于使用方式。开发者需要提供结构化的问题描述、明确的执行要求和相关上下文,同时建立适当的防护机制。AI不仅能处理重复性任务,还能识别和评估替代方案,从被动助手演进为工作流程推进器。成功的关键在于将AI视为合作伙伴而非快捷工具,并将其整合到软件交付的全生命周期中。
NVIDIA研究团队开发出名为Lyra的AI系统,能够仅凭单张照片生成完整3D场景,用户可自由切换观察角度。该技术采用创新的"自蒸馏"学习方法,让视频生成模型指导3D重建模块工作。系统还支持动态4D场景生成,在多项测试中表现优异。这项技术将大大降低3D内容创作门槛,为游戏开发、电影制作、VR/AR应用等领域带来重大突破。
Salesforce发布企业级AI智能体平台Agentforce 360,将AI智能体融入几乎所有应用中。该平台采用混合推理引擎Atlas,结合大语言模型的概率思维和业务规则的精确性,支持语音交互和深度集成。以Slack为主要界面,提供Agentforce Builder开发环境,能将非结构化文档转换为可查询记录。Salesforce内部已部署该系统,每周处理180万次对话,主动服务活动增长40%。
谷歌DeepMind团队创新性地让Gemini 2.5模型在无需训练的情况下学会理解卫星多光谱图像。他们将复杂的12波段卫星数据转换为6张可理解的伪彩色图像,配以详细文字说明,使通用AI模型能够准确分析遥感数据。在多个基准测试中超越现有模型,为遥感领域AI应用开辟了全新道路。