### 陷阱
使用cache API時,一個最重要的問題就是潛在的數據加載。因為IMDG提供的分布式集合也都是實現的JDK的Map、Set等接口,以JDK的Map為例,它接口規定put和remove返回被替換的對象或刪除掉的對象,所以這會導致我們操作緩存時導致與后端存儲的通信。所以我們要調用其它版本的API,例如GridGain提供了putx等接口,其返回值是一個布爾值而非舊的對象。
### 問題
現今的IMDG雖然已經比較成熟,但仍有一些問題需要解決:
???冷啟動問題:即便是能夠并行還原,從后端數據庫還原數TB的數據依然需要很久,這段時間是會導致數據庫的過載,可能無法為其他應用提供服務。
???缺少CDC能力:還沒有一款IMDG產品提供CDC(Change Data Capture)能力,即數據庫數據的變化如何反映到IMDG中。現在一般都需要觸發器或第三方產品來實現CDC,例如Hazelcast通過第三方Speedment能夠監控數據庫中的數據變化。
???分布式計算容錯:像Impala分布式計算平臺直接不提供容錯。
### 參考資料
1?[Hazelcast's MapLoader Pitfalls](http://java.dzone.com/articles/hazelcasts-maploader-pitfalls)
2?[Jags Ramnarayan on In-Memory Data Grids](http://www.infoq.com/articles/in-memory-data-grids)