Apache Ignite——新一代數據庫緩存系統

【編者按】飛速增加的數據須要大量存儲,對這些數據的管理也不是一件容易的事。但相比於存儲和管理,如何處理數據纔是開發人員真正的挑戰。對於TB級別數據的存儲和處理一般會讓開發人員陷入速度、可擴展性和開銷的矛盾困境中。近日,Dmitriy Setrakyan 在 Dzone 上撰文,爲你們介紹了新一代數據庫緩存系統 Apache Ignite,由 OneAPM 工程師編譯。html

如下爲譯文sql

將數據存儲在緩存中可以顯著地提升應用的速度,由於緩存可以下降數據在應用和數據庫中的傳輸頻率。Apache Ignite 容許用戶將經常使用的熱數據儲存在內存中,它支持分片和複製兩種方式,讓開發者能夠均勻地將數據分佈式到整個集羣的主機上。同時,Ignite 還支撐任何底層存儲平臺,無論是 RDBMS、NoSQL,又或是 HDFS。數據庫

Apache Ignite——新一代數據庫緩存系統

在集羣配置好以後,數據集增長只需在 Ignite 集羣中增長節點而不須要重啓整個集羣。節點數目能夠無限增長,因此 Ignite 的擴展性是無窮的。在 Ignite 的配置上有下面這幾個選項可供選擇:apache

Write-Through 和 Read-Through緩存

在 Write-Through 模式中,緩存中的數據更新會被同步更新到數據庫中。 Read-Through 則是指請求的數據在緩存中不可用時,會自動從數據庫中拉取。app

Write-Behind Caching異步

Ignite 還提供了一種叫作 Write-Behind Caching 的數據庫異步更新模式。默認狀況下, Write-Through 中每一次更新都會對數據庫發起一次請求。若是使用 Write-Behind Caching 後寫,對緩存的更新會整合成批次而後再發送給數據庫。這對改刪頻繁的應用來講能夠達到至關的性能提高。分佈式

自動化持久數據函數

Ignite 提供了易用的 schema 映射工具,從而系統能夠自動地與數據庫整合。這一工具能夠自動地鏈接數據庫,並生成全部須要的 XML OR-mapping 配置以及 Java 域模型 POJOs。工具

SQL 查詢

查詢 Ignite 緩存很簡單,使用的就是標準的 SQL。Ignite 支持全部的 SQL 函數、聚合和 group 操做,甚至支持分佈式 SQL JOINs。下面 Ignite 中一個 SQL 查詢示例:

IgniteCache<Long, Person> cache = 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<List<?>> cursor = cache.query(sql)) {
for (List<?> row : cursor)
System.out.println("Full name: " + row.get(0));
}

小結

Apache Ignite 是一個聚焦分佈式內存計算的開源項目,它在內存中儲存數據,並分佈在多個節點上以提供快速數據訪問。此外,可選地將數據同步到緩存層一樣是一大優點。最後,能夠支持任何底層數據庫存儲一樣讓 Ignite 成爲數據庫緩存的首先。

想要了解更多信息、文檔、示例,請移步 Apache Ignite 官網。

原文連接:Apache Ignite for Database Caching

OneAPM 是應用性能管理領域的新興領軍企業,能幫助企業用戶和開發者輕鬆實現:緩慢的程序代碼和 SQL 語句的實時抓取。想閱讀更多技術文章,請訪問 OneAPM 官方博客

相關文章
相關標籤/搜索