2016-05-11 8 views
5

それは述べて:Hazelcastパーティション数とスレッドの同時実行

は、パーティション対応の操作を実行するには、操作スレッドの配列が作成されます。

単一の操作スレッドは、複数のパーティションに対して操作を実行します。

各パーティションは1つの操作スレッドにのみ属します。

17ノードのクラスタにそれぞれ16個のパーティションスレッドを持つデフォルトの271個のパーティションがあるとします。パーティションをクラスタ全体に分散すると、すべてのパーティションには1つのスレッドが関連付けられ、各スレッドは1つのパーティションしか持たないことになります(最適なケースと思われます)。

IMapインスタンスを作成するときに、バックアップとキャッシュに近いものを無視すると、クラスタ全体のすべてのマップパーティションで1つのput/get操作を実行することができますか?さらに、MapStoreをアタッチすると、非同期マップストアを作成する方法がないため、バックエンドデータベースに対して271回の同時操作しか実行できません。

これは私が高度に並行しているWebアプリケーションを持っており、最近データストアを切り替えて、その前にHazelcast IMapを実行するようにしたことです。アプリケーションは何千もの同時接続を受け入れ、ほとんどすべての単一の要求は分散マップから少なくともget操作を実行します。私はこれらのエラーの多くを見ている:データベースからフェッチしようとしながら

com.hazelcast.core.OperationTimeoutException: No response for 20000 ms. Aborting invocation! Invocation{serviceName='hz:impl:mapService', op=com.hazelcast.map.impl.operation.GetOperation{identityHash=1003806362, serviceName='hz:impl:mapService', partitionId=244, replicaIndex=0, callId=55212219, invocationTime=1462913274676 (Tue May 10 20:47:54 UTC 2016), waitTimeout=-1, callTimeout=10000, name=..., name=...}, partitionId=244, replicaIndex=0, tryCount=250, tryPauseMillis=500, invokeCount=1, callTimeout=10000, target=Address[10.0.2.221]:5701, backupsExpected=0, backupsCompleted=0, connection=Connection [/10.0.2.219:5701 -> /10.0.2.221:14565], endpoint=Address[10.0.2.221]:5701, alive=true, type=MEMBER} No response has been received! backups-expected:0 backups-completed: 0

これは単にパーティションスレッドをブロックMapStoreによって引き起こされていませんか?私はまた、それがNo response for 20000 msと言っている間、20秒が経過していないことに注意する必要があります。

私は、IMAPのインスタンスを作成するとき、私は、gnoringのバックアップと近キャッシュ

+0

通常の2x60秒ではなく、20秒のタイムアウトのためにhazelcast.operation.call.timeout.millisを変更しましたか? – pveentjer

答えて

2

のJava 8にHazelcast 3.6.2を実行しているよ、私が今まで持っている唯一のことができ、この平均値を行い1同時PUT /クラスタ全体のすべてのマップパーティションで操作を実行できますか?

正しい。したがって、マップaとマップbのパーティション25は、マップbの操作を処理するためにビジーであり、したがって、マップaの操作は待機する必要があります。さらに行く

私はMapStoreを添付する場合は非同期MapStoresを作る方法がないことから、この平均値は、私は今まで、私のバックエンドのデータベースに対して実行されている271の同時操作を持つことができるのでしょうか?

ライトスルーのmapstore - > yesの場合。しかし、私はwritebehind(非同期)mapstoresスレッディングモデルのファミレスではありません。

これは単にデータベースからフェッチしようとしている一方で、パーティションのスレッドをブロックMapStoreによって引き起こされていませんか?また、20000ミリ秒間は応答なしと言われていますが、20秒間が経過していないことにも注意してください。非常によく原因である可能性があります

関連する問題