未來數據庫發展暢想

突發奇想,對於數據庫,想到了一些有意思的事情和功能,算是對未來數據庫發展的一種暢想吧,期待未來有實力的公司或是科研機構能真正實現。

一:分佈式操作系統---永動機型操作系統

聊數據庫,先要說說操作系統,畢竟數據庫要安裝部署在操作系統上。
目前應用服務常見的硬故障分爲電源、CPU、硬盤、內存、網絡等,這些都是常見的、不可抗拒的故障。非分佈式操作系統下,各個服務器資源不能最大化的得到合理利用,即使是現在的K8S容器時代,也是這樣。目前在應用服務層面,存在讀寫性能、CPU、內存、網絡等瓶頸,但在分佈式操作系統下的數據庫將突破這些瓶頸,將實現永動機型的應用,永不宕機,資源足夠的情況下,各種資源自動彈性伸縮,性能永遠沒有瓶頸,整體的資源也得到合理的利用,應用服務不再關心硬件問題。
目前實現了文件存儲的分佈式(如ceph等文件系統),但是還沒有實現CPU、內存、網絡的分佈式,即使只實現文件系統的分佈式,也帶來了數據庫的巨大變革,代表Aurora、PolarDB等,實現存儲與計算分離,在硬件上,基本上不用在關注硬盤故障的問題,安全、性能和彈性擴展能力得到極大提升。
如果最主要的CPU、硬盤、內存、網絡全部實現了真正的分佈式,不再區分單機CPU、硬盤、內存、網絡,所有的資源都在一個大池子中,所有分佈式集羣中的CPU和內存等資源是集羣共有的、可以共享的,既可以限定使用服務資源使用,也可以實現自動彈性擴展,那麼則可以實現提供100%可靠的應用服務,此時的服務不是運行在某個物理機上,是動態運行在分佈式操作系統中,即使其中的一個物理節點故障,完全不會影響業務的正常運行、不影響數據的安全可靠性。
離開成本談架構是不且實際的,出現這種分佈式操作系統,需要軟件和硬件的支持,但隨着軟件和硬件技術的飛速發展,相信在未來會出現這種操作系統。

二:智能數據庫

目前的數據庫智能化,應該說是自動化,運維的智能化也多是如此,真正實現智能化的公司不多。對於智能數據庫,個人的暢想應該是利用機器學習,自動、自適應各種複雜環境,無人值守安裝部署、運維,並使數據庫時刻保持運行的最佳最優狀態。
1:性能參數自動調優,無配置文件化,CPU、內存、硬盤、網絡、內核、線程、TCP連接等自動調優,數據庫啓動開始到運行過程中時刻保持各種參數的設置是最佳的、數據庫的性能是最優的。
2:自動添加和優化索引,數據庫表在創建的時候不需要指定索引,由數據庫根據實時的情況創建最優的索引。
3:數據庫運維人員可以動態指定開發規範,比如禁用大字段、沒有主鍵的表在創建的時候直接報錯,增加數據庫開發規範中的審覈功能。
4:SQL語句的自動重寫功能,對於複雜的SQL可以自動的進行重寫,簡化並優化SQL執行效率。
5:並行查詢提升查詢效率。
6:詳盡的庫表訪問統計,能夠區分冷熱數據,並可以自動的進行冷熱數據分離,使數據庫熱數據始終處於最優最佳讀寫狀態。
7:數據存儲列式存儲和行式存儲並存,類似excel,橫豎都能計算,都能讀取,實現數據庫真正的HTAP,完美支持OLTP和OLAP場景。
8:集羣化管理更加簡化、實現傻瓜式管理,部署完成即成熟集羣,故障切換管理更加安全可靠。

三:混合型數據庫

目前的數據庫可以說是你中有我,我中有你,你有的,你支持的,我必須也要有、也要支持。各種數據庫都有自己的最優適用場景,但場景是多樣化的,就出現了Oracle、MySQL、PG、Redis、MongoDB、Flink、Kafka等多種數據庫並存,這樣對研發和運維人員都是巨大的挑戰,用的越多越複雜,只是安裝這些軟件就需要耗費很大的精力。
在未來可能出現一種數據庫,兼具各種數據庫特長,並能代碼零修改直接使用的多種數據庫集,就像MariaDB支持Oralce數據庫一樣,只需修改sql_mode=Oracle,即可完全兼容oralce語法。這種數據庫可能是一種框架,其他的數據庫直接熱插拔,即插即用。最終一種數據庫一統天下。

想法不斷更新中。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章