摘要:近日,在上撰文,為大家介紹了新一代數(shù)據(jù)庫緩存系統(tǒng),由工程師編譯。還提供了一種叫做的數(shù)據(jù)庫異步更新模式。此外,可選地將數(shù)據(jù)同步到緩存層同樣是一大優(yōu)勢。最后,可以支持任何底層數(shù)據(jù)庫存儲同樣讓成為數(shù)據(jù)庫緩存的首先。
【編者按】飛速增長的數(shù)據(jù)需要大量存儲,對這些數(shù)據(jù)的管理也不是一件容易的事。但相比于存儲和管理,如何處理數(shù)據(jù)才是開發(fā)人員真正的挑戰(zhàn)。對于TB級別數(shù)據(jù)的存儲和處理通常會讓開發(fā)人員陷入速度、可擴展性和開銷的矛盾困境中。近日,Dmitriy Setrakyan 在 Dzone 上撰文,為大家介紹了新一代數(shù)據(jù)庫緩存系統(tǒng) Apache Ignite,由 OneAPM 工程師編譯。
以下為譯文
將數(shù)據(jù)存儲在緩存中能夠顯著地提高應(yīng)用的速度,因為緩存能夠降低數(shù)據(jù)在應(yīng)用和數(shù)據(jù)庫中的傳輸頻率。Apache Ignite 允許用戶將常用的熱數(shù)據(jù)儲存在內(nèi)存中,它支持分片和復(fù)制兩種方式,讓開發(fā)者可以均勻地將數(shù)據(jù)分布式到整個集群的主機上。同時,Ignite 還支撐任何底層存儲平臺,不管是 RDBMS、NoSQL,又或是 HDFS。
在集群配置好之后,數(shù)據(jù)集增加只需在 Ignite 集群中增加節(jié)點而不需要重啟整個集群。節(jié)點數(shù)目可以無限增加,所以 Ignite 的擴展性是無窮的。在 Ignite 的配置上有下面這幾個選項可供選擇:
Write-Through 和 Read-Through
在 Write-Through 模式中,緩存中的數(shù)據(jù)更新會被同步更新到數(shù)據(jù)庫中。 Read-Through 則是指請求的數(shù)據(jù)在緩存中不可用時,會自動從數(shù)據(jù)庫中拉取。
Write-Behind Caching
Ignite 還提供了一種叫做 Write-Behind Caching 的數(shù)據(jù)庫異步更新模式。默認(rèn)情況下, Write-Through 中每一次更新都會對數(shù)據(jù)庫發(fā)起一次請求。如果使用 Write-Behind Caching 后寫,對緩存的更新會整合成批次然后再發(fā)送給數(shù)據(jù)庫。這對改刪頻繁的應(yīng)用來說可以達到相當(dāng)?shù)男阅芴嵘?/p>
自動化持久數(shù)據(jù)
Ignite 提供了易用的 schema 映射工具,從而系統(tǒng)可以自動地與數(shù)據(jù)庫整合。這一工具可以自動地連接數(shù)據(jù)庫,并生成所有需要的 XML OR-mapping 配置以及 Java 域模型 POJOs。
SQL 查詢
查詢 Ignite 緩存很簡單,使用的就是標(biāo)準(zhǔn)的 SQL。Ignite 支持所有的 SQL 函數(shù)、聚合和 group 操作,甚至支持分布式 SQL JOINs。下面 Ignite 中一個 SQL 查詢示例:
IgniteCachecache = ignite.cache("mycache"); // ‘Select’ query to concatenate the first and last name of all persons. SqlFieldsQuery sql = new SqlFieldsQuery( "select concat(firstName, " ", lastName) from Person"); // Execute the query on Ignite cache and print the result. try (QueryCursor > cursor = cache.query(sql)) { for (List> row : cursor) System.out.println("Full name: " + row.get(0)); }
小結(jié)
Apache Ignite 是一個聚焦分布式內(nèi)存計算的開源項目,它在內(nèi)存中儲存數(shù)據(jù),并分布在多個節(jié)點上以提供快速數(shù)據(jù)訪問。此外,可選地將數(shù)據(jù)同步到緩存層同樣是一大優(yōu)勢。最后,可以支持任何底層數(shù)據(jù)庫存儲同樣讓 Ignite 成為數(shù)據(jù)庫緩存的首先。
想要了解更多信息、文檔、示例,請移步 Apache Ignite 官網(wǎng)。
原文鏈接:Apache Ignite for Database Caching
OneAPM 是應(yīng)用性能管理領(lǐng)域的新興領(lǐng)軍企業(yè),能幫助企業(yè)用戶和開發(fā)者輕松實現(xiàn):緩慢的程序代碼和 SQL 語句的實時抓取。想閱讀更多技術(shù)文章,請訪問 OneAPM 官方博客
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/17494.html
摘要:這一點其實是非常不妥的,有潛在的安全問題。這次,在項目中終于采用了以它為基礎(chǔ)的集群方案。相反,使用一個周期,但針對每個生成一個一次性的,模擬隨機發(fā)送。同時,要記得用完之后立即釋放。 當(dāng)初創(chuàng)建簡書賬號的時候曾立下宏愿,希望保持周更,無奈現(xiàn)實殘酷,整個5月都處于忙忙碌碌的狀態(tài),居然令這個本來并不算太宏偉的目標(biāo)難以為繼,最終導(dǎo)致5月份交了白卷!【好吧,我承認(rèn),是我意志不夠堅定,太懶了,;)】...
摘要:但實際情況是緩存是大型網(wǎng)站的標(biāo)配。以上分析告訴我們緩存架構(gòu)要滿足冷熱分離的特征不滿足,因為冷數(shù)據(jù)可能擠走熱數(shù)據(jù)。另外,眾所周知,緩存架構(gòu)還要滿足讀寫分離的特征也不滿足,因為寫操作會爭搶讀操作的資源。這種風(fēng)格需要緩存系統(tǒng)的支持。 問題背景 略談服務(wù)端緩存設(shè)計 一文說到緩存不是必須的,因為數(shù)據(jù)庫本身就利用了內(nèi)存。但實際情況是緩存是大型網(wǎng)站的標(biāo)配。 雖然經(jīng)驗顯示RDBMS最快時只需0~1ms...
摘要:但實際情況是緩存是大型網(wǎng)站的標(biāo)配。以上分析告訴我們緩存架構(gòu)要滿足冷熱分離的特征不滿足,因為冷數(shù)據(jù)可能擠走熱數(shù)據(jù)。另外,眾所周知,緩存架構(gòu)還要滿足讀寫分離的特征也不滿足,因為寫操作會爭搶讀操作的資源。這種風(fēng)格需要緩存系統(tǒng)的支持。 問題背景 略談服務(wù)端緩存設(shè)計 一文說到緩存不是必須的,因為數(shù)據(jù)庫本身就利用了內(nèi)存。但實際情況是緩存是大型網(wǎng)站的標(biāo)配。 雖然經(jīng)驗顯示RDBMS最快時只需0~1ms...
閱讀 4657·2021-10-13 09:39
閱讀 538·2021-09-06 15:02
閱讀 3303·2019-08-30 15:53
閱讀 1095·2019-08-30 13:04
閱讀 2176·2019-08-30 11:27
閱讀 2066·2019-08-26 13:51
閱讀 2178·2019-08-26 11:33
閱讀 2955·2019-08-26 10:36