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

jopen 9年前發布 | 22K 次閱讀 緩存服務器 Apache Ignite

Apache Ignite是一個通用的數據庫緩存系統,它不僅支持所有的底層數據庫系統,比如RDBMS、NoSQ和HDFS,還支持Write-Through和Read-Through、Write-Behind Caching等可選功能。

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

以下為譯文

將數據存儲在緩存中能夠顯著地提高應用的速度,因為緩存能夠降低數據在應用和數據庫中的傳輸頻率。Apache Ignite允許用戶將常用的熱數據儲存在內存中,它支持分片和復制兩種方式,讓開發者可以均勻地將數據分布式到整個集群的主機上。同時,Ignite還支撐任何底層存儲平臺,不管是RDBMS、NoSQL,又或是HDFS。

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

在集群配置好之后,數據集增加只需在Ignite集群中增加節點而不需要重啟整個集群。節點數目可以無限增加,所以Ignite的擴展性是無窮的。在Ignite的配置上有下面這幾個選項可供選擇:

Write-Through和 Read-Through 

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

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 (責編/仲浩)

</div> 來自:http://www.csdn.net/article/2015-09-28/2825815

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!