填充Hazelcast數據網格的最快方式是什麼?通過文檔閱讀中,我可以看到幾個變種:填充數據網格的最快方式Hazelcast
- 使用多線程和IMap.set
- 使用多線程和IMap.putAll
- 使用分佈式執行,以開始填充所有參與者的網格。
我的性能基準測試顯示IMap.putAll比IMap.Set快。但是在Hazelcasty文檔中指出IMap.putAll不會保證所有東西都會被原子地插入。
有人可以澄清一下有關使用數據填充數據網格的最快方式是什麼?
3號變體是否好?
填充Hazelcast數據網格的最快方式是什麼?通過文檔閱讀中,我可以看到幾個變種:填充數據網格的最快方式Hazelcast
我的性能基準測試顯示IMap.putAll比IMap.Set快。但是在Hazelcasty文檔中指出IMap.putAll不會保證所有東西都會被原子地插入。
有人可以澄清一下有關使用數據填充數據網格的最快方式是什麼?
3號變體是否好?
我會看到相同的三個選項。無論如何,正如你所提到的,選項二不能保證所有東西都以原子方式放入地圖,但如果你只是加載數據並等待所有線程使用IMap :: putAll完成加載數據,那麼你應該沒問題。
除此之外,IMap :: set將是另一種選擇。無論如何你都想多線程加載過程。我會玩一些不同的線程號碼,通常建議客戶端加載數據以保持節點免費進行存儲操作。
我個人從來沒有對你的第三個選項進行基準測試,無論如何它也是可能的。只是不確定這是值得的額外工作。
你想加載多少數據,你擔心它可能會很慢?你知道加載速度很慢嗎?你使用Java序列化(這是一個巨大的性能殺手)?你是否使用索引(這些索引必須在生成數據時生成)?
通常有很多優化應用於加速,不僅是數據加載,還有正常操作。
hei謝謝你的回答。我多少想知道是否有ant point testing optionopinion 3.如果有第四種選擇。關於你的問題,外包團隊聲稱他們的表現比商店更差。到目前爲止,我已經看到他們使用IMAP :: put而不是IMAP :: putAll。序列化看起來不錯。他們正在春季批量推廣paralel.I將檢查更多今天。 –
你好,我剛剛看到了源代碼。它使用Transactional Map,並且TransactionAlMap的實現中缺少putAll方法。這是如何改變這些事情的?我們怎樣才能將大量數據放入此事務性Map? –
你好,使用TransactionalMap時會出現一個有趣的副作用。性能高度依賴於MAP中插入的對象的數量。當插入的塊大小爲1000時,速度明顯低於塊大小250.爲什麼?有什麼方法可以改進? –