2014-03-13 26 views
0

我正在評估GridGain,並已閱讀並重新閱讀我能找到的所有文檔。儘管其中很多內容都非常詳盡,但可以說它大部分都是由開發人員編寫的。如果有一本以局外人的視角撰寫的參考書,那將是非常棒的。GridCacheQueue元素是否也是GridCacheElements?

無論如何,我有五個基本問題,我希望GridGain有人能回答併爲我澄清。

  1. 我的理解是GridCacheQueue(和其他分佈式數據結構)建立在GridCache實現之上。這是否意味着GridCacheQueue的每個元素都只是GridCache映射的GridCacheElement,或者每個GridCacheQueue都是GridCacheElement,還是我有這個完全錯誤的?
  2. 如果我在GridCache上設置了默認TTL,GridCacheQueue的元素是否會在TTL時間內過期,還是隻適用於GridCacheElements(可能在上面的#1中回答)?
  3. 有沒有辦法讓GridCacheQueue在一段時間後過期而不必手動刪除它?
  4. 如果將緩存設置爲備份到其他節點上並且緩存正在使用卸載內存和/或交換存儲,則卸載內存和/或交換存儲也會被複制到後端內存和/節點?
  5. 是否可以動態創建新的緩存,還是隻能在節點創建時通過配置創建?

感謝您提供任何有見地的信息!

-Colin

回答

0

與GridCache和GridCacheQueue試驗後,這裏就是我瞭解我的5個問題:

  1. 我不知道GridCacheQueue或其元素是如何連接到一個GridCache,但我知道GridCacheQueue的元素不會顯示爲GridCache的GridCacheElements。
  2. 如果您在GridCache上設置TTL併爲其添加GridCacheQueue,則一旦GridCache的元素開始過期,GridCacheQueue將變得不可用,並且會導致拋出GridRuntimeException。
  3. 是的,見上面#2。但是,一旦GridCache的元素開始過期,測試隊列是否仍然存在似乎沒有安全的方法。
  4. 還沒有關於此的信息。真的很喜歡這方面的一些反饋。
  5. 這是一個我從來不應該問的問題。一個GridCache可以完全用代碼創建並配置。
0

讓我首先說的是GridGain支持多種隊列配置參數:

  • 並置與非同一地點。在共置模式下,您可以有許多隊列。每個隊列將被分配給某個網格節點,並且該隊列中的所有數據將緩存在該網格節點上。這樣,如果有許多隊列,每個隊列都可以緩存在不同的節點上,但是隊列本身應該均勻分佈在所有節點上。另一方面,非同位模式適用於較大的隊列,其中同一隊列的數據在多個節點間進行分區。
  • 容量 - 此參數定義最大隊列容量。當隊列達到這個容量時,它會自動開始驅逐元素最老的元素。

現在,讓我試着解決其中的一些問題。

  1. 我相信GridCacheQuery的每個元素都是緩存中的一個獨立元素,但實現將它們標記爲內部元素。這就是爲什麼在迭代緩存時看不到這些元素的原因。
  2. TTL不應該與隊列中的元素一起使用(GridGain將很快添加此功能)。目前,您應該通過在創建時指定隊列「容量」來限制隊列的最大大小。
  3. 我不這麼認爲,但我認爲這個功能正在增加。現在,您可以嘗試使用org.gridgain.grid.schedule.GridScheduler來安排稍後將刪除隊列的作業。
  4. 答案是YES。在堆外和交換空間中的數據都以與主要堆內緩存數據相同的方式進行備份和複製。
  5. 緩存應該在配置中創建,無論是從代碼還是XML。但是,GridGain有一個很酷的GridCacheProjection概念,它允許在同一個緩存上創建各種子緩存(緩存視圖)。例如,如果將Person和Organization類存儲在同一個緩存中,那麼可以在使用Person類時使用類型Person的緩存投影,以及使用Organization類時的類型Organization的緩存投影。
+0

感謝您花時間回覆這些細節。您的迴應非常有幫助。 – SDI

相關問題