存算分離看場景

計算機行業是唯一一個比時裝行業概念更多的行業。概念頻出,最慢的話半年一定出一個,短的話半個月就能看到新的名詞和技術甚至是概念。

存算分離的概念

我第一次聽到存算分離時候還是從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.pswp.cn/news/901684.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/901684.shtml
英文地址,請注明出處:http://en.pswp.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地址是常見的…