存算分离看场景

计算机行业是唯一一个比时装行业概念更多的行业。概念频出,最慢的话半年一定出一个,短的话半个月就能看到新的名词和技术甚至是概念。

存算分离的概念

我第一次听到存算分离时候还是从Hadoop上听到的。然后就去问什么是存算分离。听了讲解以后,我问这和Oracle的集群–RAC的不是一样吗?回答说是基本这个意思。只是Oracle并没有这样宣传。RAC因为有ASM一层,打通了不同存储节点,让数据库看存储是一大块。而Hadoop的HDFS也类似的实现。
我之所以说类似,是因为还有一点不同的。区别就是一个属于引擎级存算分离还有一个数部署级存算分离。(可能是现有实物,再有冠名,依然是概念)
什么是引擎级存算分离?在数据库引擎的内部架构设计层面,天然将存储层(数据持久化)与计算层(查询处理)解耦,二者通过明确的接口或协议通信。优势:弹性扩展:计算和存储可独立扩缩容。资源隔离:计算节点无状态,故障恢复快。云原生友好。云原生依然是一个概念,说的直白点就是在公有云上使用更好。根据这些特征我们也可以判断了OceanBase、TiDB等就是这类的存算分离(这里提及的是他们的分布式版,他们都有单机版和敏捷版不属于这种)
什么是部署级存算分离?将存储与计算分离,但数据库引擎本身并非原生支持。通常依赖共享存储(如SAN、分布式文件系统)。硬件复用:存储资源可被多计算节点共享。简化迁移:计算节点可快速替换,数据无需迁移。根据这些特征我们也可以判断了Oracle的RAC,YashanDB和cantian等属于这种存算分类。
两种存算分离各有千秋。个人认为如果是企业级应用那么部署级存算分离更加贴近业务一些,企业内部不会有爆炸式增长和太多的不确定性。而引擎级存算分离更多的是面向互联网场景的不确定性。

存算分离自带高可用

当谈及存算分离的时候,其实已经进入分布式和高可用的范畴。无论那种存算分离都是对应用透明的。TIDB也好Oracle也罢。1个计算节点宕机或者重启不影响使用。同样存储上都是多副本的,硬盘发生故障数据也不会丢失。那么可靠性的问题就解决了。

存算分离是需求的产物

可以看出有很多产品都有存算分类的架构和方案,那么为什么要做呢?因为有需求!
从一个角度上说,这样做我认为有两个原因。第一个原因是单机的存储有上限,第二个是多个存储并行的话,可以提升读写性能。这些都是和硬件的容量和IO能力有关。只是这些年硬件也在进步。所以也出现了分布式向集中式变迁的趋势。这也就是为什么不少分布式数据库出单机版的原因。这时候部署级存算分离似乎就更加凸显优势。即是分布式又相对集中。
而从另外一个角度,是说计算和存储之间的矛盾。一般来说存储的IO比内存差,比起L1 L2 L3以及CPU就更差了。那么就会出现CPU在等IO情况。那么在存算一体的情况下,只能等。这种场景下存储就限制了计算的发挥。多余的计算能力,其他机器也用不到。同样如果是多余的存储资源其他机器也用不到。
对于以上的问题虚拟机可以增加存储空间和CPU数量。但是如果加到物理机分配的上限也不能加了。而物理机这个扩展到上限也无法加了。而在存算分离的架构下,就可以动态的增加。
这时候就可以看出存算分离的优势了。就像步步高点读机,哪里不会点哪里一样。存算分离哪里不够补哪里。

存算分离是自身的产物

关于算子下推的也在存算分离数据库中都体现了。因为这部分的主要工作其实是存储做的。所谓算子下推比如select * from t where id<1000 and status=0 如果id有索引,但是status没有索引,加上0的有50个。 那么一般情况下通过谓词过滤索引定位扫描1000行,在这1000个中在找到50返回。 而在算子下推到存储层后,在存储层就直接把这50个给出来,而不必把这些行和列加载到内存后再过滤返回给客户端,减少了内存和磁盘、以及内存和网络之间的交互。没有存储上的工作是做不到这个特性的。不是买来一堆硬盘攒一个存储就可以。
还有一点说到分布式那么分布式数据库要不要备份。从前我个人认为不需要。毕竟没听过谁说给Hadoop做备份。百度也没听说过做备份。但是对于有些存算分离的数据库还是提出了备份的要求。在这种情况下备份其实是不好做的。而部署级存算分离可以通过全局一致性快照来完成。什么是全局一致性快照?其实就是对存储上所有的使用的数据块做一次备份。可以理解成虚拟机那种快照。不同的是存算分离的数据库中有管理元数据的机器通过他知道数据在磁盘上的分布,所以就克隆了一份。这种在存储级存算分离上似乎实现比较容易一些,例如Oracle的备份一体机对RAC以及上述提到的其他存储级存算一体数据库。

存算分离是存储不足还是计算不足?

那么到底是计算会经常不足还是存储会经常不足?按说通过合理的设计和实现,绝大部分企业都不需要用到Hadoop。本身也没有海量的数据,如果SQL用到索引计算不会是大问题。
至于存储方面,现在网上看到硬盘N (n>=4) TB的很常见。也就是说中小企业来说都不太需要存算分离。只有达到大型企业比如金融的几个大行,几个运营商等这种规模的是需要存算分离架构的。
打个比方就是如果1000人要从上海去北京,那么选择火车是最优的。但是如果小于等于5个人从加到公司(在一个行政区内),那么开车是最优的。

还是看自己的规模选择

所以存算分离还是集中处理,需要结合情况来说。既不能小马拉大车,也不能杀鸡用牛刀。如果出现以上情况不是方案本身的问题,而是不适配的问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/901684.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MCP协议,.Net 使用示例

服务器端示例 基础服务器 以下是一个基础的 MCP 服务器示例&#xff0c;它使用标准输入输出&#xff08;stdio&#xff09;作为传输方式&#xff0c;并实现了一个简单的回显工具&#xff1a; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.H…

智能语音处理+1.5使用PocketSphinxshinx实现语音转文本(100%教会)

欢迎来到智能语音处理系列的最后一篇文章&#xff0c;到这里,基本上语音处理是没问题了. 第一篇:智能语音处理1.1下载需要的库(100%实现)-CSDN博客 第二篇:智能语音识别1.2用SAPI实现文本转语音(100%教会)-CSDN博客 第三篇:智能语音处理1.3用SpeechLib实现文本转语音(100%教会)…

Kubernetes 节点摘除指南

目录 一、安全摘除节点的标准流程 1. 确认节点名称及状态 2. 标记节点为不可调度 3. 排空&#xff08;Drain&#xff09;节点 4. 删除节点 二、验证节点是否成功摘除 1. 检查节点列表 2. 检查节点详细信息 3. 验证 Pod 状态 三、彻底清理节点&#xff08;可选&#xf…

信息安全管理与评估2021年国赛正式卷答案截图以及十套国赛卷

2021年全国职业院校技能大赛高职组 “信息安全管理与评估”赛项 任务书1 赛项时间 共计X小时。 赛项信息 赛项内容 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 第一阶段 平台搭建与安全设备配置防护 任务1 网络平台搭建 任务2 网络安全设备配置与防护 第二…

3D语义地图中的全局路径规划!iPPD:基于3D语义地图的指令引导路径规划视觉语言导航

作者&#xff1a; Zehao Wang, Mingxiao Li, Minye Wu, Marie-Francine Moens, Tinne Tuytelaars 单位&#xff1a;鲁汶大学电气工程系&#xff0c;鲁汶大学计算机科学系 论文标题&#xff1a; Instruction-guided path planning with 3D semantic maps for vision-language …

《AI大模型应知应会100篇》第20篇:大模型伦理准则与监管趋势

第20篇&#xff1a;大模型伦理准则与监管趋势 摘要 随着人工智能&#xff08;AI&#xff09;技术的飞速发展&#xff0c;尤其是大模型&#xff08;如GPT、PaLM等&#xff09;在自然语言处理、图像生成等领域的广泛应用&#xff0c;AI伦理问题和监管挑战日益凸显。本文将梳理当…

【Ai】dify:Linux环境安装 dify 详细步骤

一、什么是dify Dify 是一个 开源的大语言模型(LLM)应用开发平台,旨在帮助开发者快速构建基于 AI 的应用程序,例如智能对话助手、知识库问答、内容生成工具等。它提供了可视化的流程编排、模型集成、数据管理等功能,降低了开发门槛,支持快速迭代和部署。 核心功能与特点…

CentOS 操作系统下搭建 tsung性能测试环境

写在前面 为何这么安装,实际就是这么做的,这是经过好几次实践得出的经验总结。 这为了让大家更清楚的知道怎么安装 tsung性能测试环境,按步照搬的安装即可。 步骤 1、 下载软件安装包 CentOS-6.0-x86_64-bin-DVD1.iso jdk-6u4-linux-x64-rpm.bin erlang: otp_src_1…

Vulkanised

Vulkanised 1. About VulkanisedReferences The Premier Vulkan Developer Conference premier /ˈpremiə(r)/ n. 总理&#xff1b;(尤用于报章等) 首相&#xff1b;(加拿大的) 省总理&#xff1b;地区总理 adj. 第一的&#xff1b;首要的&#xff1b;最著名的&#xff1b;最…

C++之 动态数组

一、新建一个动态数组 数组名和下标操作符[]的组合可以被替换成一个指向该数组的基地址的指针和对应的指针运算&#xff1a; int a[20]; int *x a; 指针变量 x 指向数组 a 的地址&#xff0c; a[0] 和 *x 都代表数组的第一个元素。 于是&#xff0c;根据指针运算原则&…

ubuntu1804服务器开启ftp,局域网共享特定文件给匿名用户

要在 Ubuntu 18.04 上设置一个 FTP 服务器&#xff0c;满足以下要求&#xff1a; 允许匿名登录&#xff08;无需账号密码&#xff09;。指定分享特定目录下的文件。只允许只读下载。 可以使用 vsftpd&#xff08;Very Secure FTP Daemon&#xff09;来实现。以下是详细步骤&a…

mcp和API区别

MCP&#xff08;Model Context Protocol&#xff0c;模型上下文协议&#xff09;与传统API&#xff08;Application Programming Interface&#xff0c;应用程序编程接口&#xff09;在技术架构、集成方式和应用场景等方面存在显著差异&#xff0c;以下是主要区别的总结&#x…

高版本Android (AIDL HAL) 使用HIDL方法

目录 修改步骤和编译方法 注意事项 Android 11 引入了使用 AIDL 实现 HAL 的功能。 后续Android新版本,HAL默认切到了使用AIDL. 因此当导入旧HIDL实现方式时,需要做一些修改。 1.将HAL HIDL模块拷贝到相应目录,进行编译 source build/envsetup.sh lunch xxx mmm 模块路径 1.…

基于redis 实现我的收藏功能优化详细设计方案

基于redis 实现我的收藏功能优化详细设计方案 一、架构设计 +---------------------+ +---------------------+ | 客户端请求 | | 数据存储层 | | (收藏列表查询) | | (Redis Cluster) | +-------------------…

学习笔记 - Swfit 6.1 - 语法概览

获取版本号 swift -versionHello world print("Hello, world!")末尾不需要分号 值 常量(let),变量(var) var myVariable 42 myVariable 50 let myConstant 42可以显式声明变量类型,若没有则隐式推断,类似下面的Double let implicitInteger 70 let implicit…

确保连接器后壳高性能互连的完整性

本文探讨了现代后壳技术如何促进高性能互连的电气和机械完整性&#xff0c;以及在规范阶段需要考虑的一些关键因素。 当今的航空航天、国防和医疗应用要求连接器能够提供高速和紧凑的互连&#xff0c;能够承受振动和冲击&#xff0c;并保持对电磁和射频干扰 &#xff08;EMI/R…

第IV部分有效应用程序的设计模式

第IV部分有效应用程序的设计模式 第IV部分有效应用程序的设计模式第23章:应用程序用户界面的架构设计23.1设计考量23.2示例1:用于非分布式有界上下文的一个基于HTMLAF的、服务器端的UI23.3示例2:用于分布式有界上下文的一个基于数据API的客户端UI23.4要点第24章:CQRS:一种…

学习笔记十四——一文看懂 Rust 迭代器

&#x1f300; 一文看懂 Rust 迭代器 &#x1f4da; 目录导航 什么是迭代器&#xff1f;为什么 Rust 到处都在用它&#xff1f;Rust 迭代器的底层逻辑是什么&#xff1f;适配器 vs 消费者&#xff1a;谁是主角&#xff1f;常见适配器&#xff1a;加工数据的全能工厂常见消费者…

QR轻量二维码生成系统PHP源码

源码介绍 基于PHP编写的二维码在线生成系统。只需点击几下就可以生成您的个人二维码&#xff01;上传您的徽标&#xff0c;选择自定义颜色&#xff0c;生成多种类型。选择一个图案并下载最终的qrcode。可用格式&#xff1a;.png&#xff0c;.svg 效果预览 源码获取 QR轻量二…

基于Spring MVC的客户端真实IP获取方案解析

文章目录 基于Spring MVC的客户端真实IP获取方案解析概述核心方法解析代码实现工作流程 IP获取优先级策略IP有效性验证异常处理与日志使用场景注意事项扩展建议 基于Spring MVC的客户端真实IP获取方案解析 概述 在Web应用开发中&#xff0c;准确获取客户端真实IP地址是常见的…