2017-08-08 70 views
3

我正在使用Ignite的緩存適配器,它將true設置爲write-through。插入率隨屬性writeBehindEnbled設置爲true而減少

方案1:

  • 在寫通過我堅持數據HBase的。
  • 爲此,我在Ignite中插入了100000個對象,然後在HBase中,所需的時間約爲82秒。

方案2:

  • 我做了後寫屬性爲true。
  • 我在Ignite中插入了100000個對象,然後在HBase中,所需的時間約爲124秒。

以下是結果。

Write-behind  Objects  Time in ms 

    true    1,00,000  81962 
    false   1,00,000  123517 

按我的知識,如果我們使用後寫高速緩存,它可以作爲一個異步模式 但它給人意想不到的結果。我在哪裏錯了。

回答

3

你在這裏期待什麼結果?後面寫入模式只是稍後計劃商店更新,這比每次更改緩存時立即更新要快得多。

要調整它的行爲,你可以檢查setWriteBehindBatchSize,setWriteBehindFlushFrequency,setWriteBehindFlushSize,setWriteBehindFlushThreadCount

+0

謝謝你的迴應,實際上我希望write-behind屬性設置爲true時可以更快地插入。但它顯示出完全的對比。由於後寫是異步操作,它不應該等待HBase中的Persist數據。 – iamLalit

+1

後寫後送延遲時間較短,但在您的情況下,吞吐量已測量。當未刷新的數據集大小達到某個閾值(默認爲「getWriteBehindFlushSize」的1.5)時,存儲開始以直寫模式工作,而刷新線程也給GC帶來額外壓力。嘗試將'setWriteBehindFlushSize'設置爲100000. –

+1

在等待時間方面,後寫內容可以更快地插入緩存。底層存儲更新是異步的,因此可能會延遲,因此可能需要「更長時間」。 –

相關問題