自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

分布式緩存能否作為NoSQL數(shù)據(jù)庫?

數(shù)據(jù)庫 其他數(shù)據(jù)庫 分布式
分布式緩存能被用作NoSQL數(shù)據(jù)庫嗎?Ehcache的Greg Luck撰文描述了分布式緩存與NoSQL數(shù)據(jù)庫的相似性。記者就此采訪了他,討論了該方案的利弊之處。

對于文檔、對象圖、鍵值對這樣的非關系型數(shù)據(jù)類型,NoSQL數(shù)據(jù)庫為它們提供了另一種可選的數(shù)據(jù)存儲方式。分布式緩存能被用作NoSQL數(shù)據(jù)庫嗎?Ehcache的Greg Luck撰文描述了分布式緩存與NoSQL數(shù)據(jù)庫的相似性。記者就此采訪了他,討論了該方案的利弊之處。

記者:你能否就分布式緩存解決方案與NoSQL數(shù)據(jù)庫做個對比?

Greg Luck:分布式緩存通常會把數(shù)據(jù)放在內(nèi)存里,用于降低延時。NoSQL數(shù)據(jù)庫是沒有R的DBMS(即沒有關系的數(shù)據(jù)庫管理系統(tǒng)),一般也缺乏對事務和其他高級特性的支持。對于不支持關系的系統(tǒng),表關系的關聯(lián)是SQL里最麻煩的部分,這也正是NoSQL這個名字的起源。

其中一種NoSQL數(shù)據(jù)庫是鍵值存儲。典型的例子包括Dynamo、Oracle NoSQL Database和Redis。緩存也是鍵值存儲,因此說這兩者是相關的。很多緩存實現(xiàn)能被配置為可持久化的,之所以很多時候不那么做,是因為緩存是要提升性能而不是做持久化。而NoSQL數(shù)據(jù)庫則與此相反,它是用來做持久化的。

持久化緩存也可當作鍵值NoSQL數(shù)據(jù)庫來使用。NoSQL也提到了Big Data,通常是指比能放進一個單獨的RDBMS節(jié)點的量要大的數(shù)據(jù),一般從幾TB到幾PB。

分布式緩存通常用于降低事務性數(shù)據(jù)的延時,這些數(shù)據(jù)開始時并不大,但慢慢就會往Big Data這個方向發(fā)展。由于緩存將數(shù)據(jù)保存在內(nèi)存里,這提高了存儲的成本,而且需要限制數(shù)據(jù)的大小。如果依賴于堆存儲,每個服務器節(jié)點可能只有可憐的2GB。如果依賴于分布式緩存,Ehcache還提供了堆外存儲,每臺服務器可以存儲幾百GB數(shù)據(jù),可以用作TB級別的緩存。

持久化、分布式的緩存可以適用于一些NoSQL的場景。NoSQL數(shù)據(jù)庫也可以應對一些緩存的場景,只是延時稍高而已。

記者:從架構角度來看,分布式緩存和NoSQL數(shù)據(jù)庫有什么相似之處嗎?

Greg:它們都想提供優(yōu)于RDBMS的TPS和可擴展性。為此,它們都在功能上做了簡化,拋開了那些麻煩的問題,比如表關聯(lián)、存儲過程和ACID事務。

雖然Java緩存領域里有JSR 107,它為Spring和Java EE程序員提供了一套標準的緩存API,但是比起標準化接口,它們都更傾向于使用私有接口。

它們都采用對客戶端透明的方式對數(shù)據(jù)進行分區(qū),做向外擴展。非Java產(chǎn)品向上擴展做得也很好。擁有Terracotta BigMemory,我們在Java平臺上的向上擴展方面也做得很特別。最后,兩者都可以部署在常見的硬件和操作系統(tǒng)上,這讓它們都能理想地運行于云端。

記者:架構上這兩項技術又有何不同呢?

Greg:NoSQL和RDBMS通常使用的是磁盤。磁盤是機械設備,延時很厲害,因為尋道時間是磁頭移動到正確的磁道的時間,讀寫時間依賴于磁盤的 RPM。NoSQL嘗試優(yōu)化磁盤的使用,例如,僅僅在磁頭當前位置追加日志,偶爾才刷新到磁盤上。相反,緩存主要都把數(shù)據(jù)放內(nèi)存里。

NoSQL和RDBMS的客戶端很薄(想想Thrift或JDBC),只是在網(wǎng)絡中傳輸數(shù)據(jù),而像Ehcache這樣的緩存使用進程內(nèi)存儲和遠程存儲,因此常用請求在本地就能被成功處理。在分布式緩存上下文中,每個應用程序服務器的進程內(nèi)存儲中都會緩存熱點數(shù)據(jù),增加服務器數(shù)量并不會增加網(wǎng)絡或后端的負載。

RDBMS專注于成為通用的SOR(System of Record)。NoSQ希望成為某類特定數(shù)據(jù)類型的SOR,比如鍵值對、文檔、稀疏表(寬表)或圖。緩存著眼于性能,一般會與RDBMS或NoSQL數(shù)據(jù)庫結合使用,數(shù)據(jù)類型就是SOR。往往緩存中會存儲Web服務調(diào)用的結果,業(yè)務對象的計算結果,這個結果可能需要成百SOR調(diào)用才能得到。

像Ehcache這樣的緩存部分運行在應用程序的操作系統(tǒng)進程里,部分運行在網(wǎng)絡那頭自己機器的進程里。但也不是全部分布式緩存都這樣:memcache就是一個例子,所有的數(shù)據(jù)都跨網(wǎng)絡存儲。

記者:哪類應用程序最適合這種方式?

Greg:這還得從先前的問題說起,要將分布式緩存用于你現(xiàn)有的應用程序,通常只需要很小的工作量,而NoSQL則需要做很多事,還有大的架構變更。

因此適用分布式緩存的第一類應用程序是現(xiàn)有系統(tǒng),特別是有以下需要的:

◆ 由于使用量或負載激增而需要向外擴展。

◆ 為達到SLA而需要有更低的延時。

◆ 為了將大型機這樣的昂貴基礎設施的使用減到最低。

◆ 減少Web服務調(diào)用而帶來的費用。

◆ 應對極端負載高峰(比如黑色星期五一樣的促銷)。

記者:這種方式有什么局限么?

Greg:緩存,置于內(nèi)存之中,在大小上有制約,它們的技術局限受限于有多少內(nèi)存給它們使用(下面還會具體展開說明)。

緩存,就算它提供持久化功能,也未必算的上作為SOR的上選。緩存故意回避了備份到磁盤和從中還原的復雜功能,盡管也有簡單的。RDMBS在過去30年里開發(fā)了豐富的備份、還原、遷移、報表和ETL特性。而NoSQL則介于兩者之間。

緩存提供了改變數(shù)據(jù)與訪問數(shù)據(jù)的編程API。NoSQL和RDBMS則提供了工具,可以執(zhí)行腳本化語言(比如SQL、UnSQL和Thrift)。

但關鍵一點是要記住緩存并不想成為你的SOR。它能輕松地與你的RDBMS和睦相處,為此它并不需要RDBMS所有用的復雜功能。

記者:以后分布式緩存解決方案、NoSQL數(shù)據(jù)庫和傳統(tǒng)RDBMS互相協(xié)同工作,你有何看法?

Greg:速度大幅快于RDBMS,依賴于部署拓撲的NoSQL,還有數(shù)據(jù)訪問模式,分布式緩存可以位于這三者之間的任意位置。那些需要更低延時的人可以將緩存作為NoSQL的一個補充,就像現(xiàn)在對待RDBMS那樣。

稍有不同的是,在你想將RDBMS擴展到多個節(jié)點時,經(jīng)常會難于擴展,或者影響編程契約,或者受制于CAP做出權衡;而使用NoSQL,就算只使用一個節(jié)點,你也可以簡單地將其視為多節(jié)點安裝。如果是向上擴展就沒有這些問題。在RDBMS中,添加緩存是為了避免向外擴展會遇到的麻煩。通常緩存能解決系統(tǒng)的容量問題,你不用費太多力氣。因此當需要向外擴展時,加入緩存吧。

對于NoSQL而言,內(nèi)建了向外擴展的能力,在需要低延時的時候使用緩存吧。

查看英文原文:Distributed Cache as a NoSQL Data Store?

原文鏈接:http://www.lupaworld.com/article-214808-2.html

【編輯推薦】

  1. Oracle宣布即日起提供NoSQL數(shù)據(jù)庫下載
  2. 淺析Oracle NoSQL Database
  3. NoSQL、Hadoop大熱 DataStax獲巨額融資
  4. 為何傳統(tǒng)關系數(shù)據(jù)庫會黯然失色
  5. 數(shù)據(jù)庫遷移之不可忽視的輕
責任編輯:林師授 來源: lupaworld
相關推薦

2014-06-30 14:20:05

NoSQL數(shù)據(jù)庫

2013-03-05 15:36:43

NoSQL分布式系統(tǒng)

2015-06-16 10:39:43

NoSQL分布式算法

2015-06-30 12:49:27

HBaseNoSQL分布式

2021-11-08 10:52:02

數(shù)據(jù)庫分布式技術

2025-01-10 09:25:10

NOSQL數(shù)據(jù)庫ACID

2023-12-05 07:30:40

KlustronBa數(shù)據(jù)庫

2013-04-26 16:18:29

大數(shù)據(jù)全球技術峰會

2021-12-20 15:44:28

ShardingSph分布式數(shù)據(jù)庫開源

2023-03-26 12:43:31

數(shù)據(jù)庫KeyValue

2018-05-07 09:30:41

數(shù)據(jù)庫NoSQLNewSQL

2009-10-23 10:45:21

NoSQLMemcached關系數(shù)據(jù)庫

2024-03-11 08:57:02

國產(chǎn)數(shù)據(jù)庫證券

2023-11-14 08:24:59

性能Scylla系統(tǒng)架構

2020-06-23 09:35:13

分布式數(shù)據(jù)庫網(wǎng)絡

2023-03-07 09:49:04

分布式數(shù)據(jù)庫

2023-07-28 07:56:45

分布式數(shù)據(jù)庫SQL

2022-05-31 07:58:49

TiDB數(shù)據(jù)庫開源

2023-08-27 16:11:35

數(shù)據(jù)庫分布式事務數(shù)據(jù)庫

2018-06-07 08:31:33

Oracle分布式內(nèi)存
點贊
收藏

51CTO技術棧公眾號