2017-08-08 9 views
3

ライトスルーをtrueに設定してIgniteのキャッシュアダプタを使用しています。プロパティのwriteBehindEnbledがtrueに設定されると、挿入率が低下します

シナリオ1:私はHBaseのにデータを永続化していて、ライトで

  • Igniteに100000個のオブジェクトを挿入した後、HBaseに挿入すると、これに必要な時間は約82秒でした。

シナリオ2:

  • 私がtrueにライトビハインド財産を作りました。
  • 私はIgniteに100000個のオブジェクトを挿入してからHBaseに挿入しましたが、これに必要な時間は約124秒でした。

以下は結果です。私の知る限り1として

Write-behind  Objects  Time in ms 

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

我々は、ライトビハインドキャッシュを使用している場合、それは非同期モード として動作しますが、それは予想外の結果を与えています。私はどこかに間違っていますか?

答えて

3

ここではどのような結果が期待されますか?ライトビハインドモードは、後でストア更新をスケジュールするだけで、各キャッシュ変更時に直ちに更新するよりもはるかに高速です。

これを確認するには、setWriteBehindBatchSize、、、setWriteBehindFlushThreadCountをチェックしてください。

+0

ありがとうございました。実際には、後書きプロパティがtrueに設定されていると、より高速な挿入が期待されていました。しかしそれは私に完全なコントラストを示しました。ライトビハインドは非同期操作なので、HBaseのPersistデータを待つべきではありません。 – iamLalit

+1

write-behindはレイテンシを小さくしますが、あなたの場合はスループットが測定されます。フラッシュされていないデータセットのサイズがあるしきい値(デフォルトでは 'getWriteBehindFlushSize'の1.5)に達すると、ストアはライトスルーモードで動作し始め、フラッシャースレッドはGCに追加の圧力を与えます。 'setWriteBehindFlushSize'を100000に設定しようとしてください。 –

+1

ライトビハインドはレイテンシの観点からキャッシュへの挿入を速くします。基本となるストレージの更新は非同期であり、遅延する可能性があるため、「より長く」かかる可能性があります。 –

関連する問題