MySQLを使わずにデータストア内のデータに影響を及ぼすタスクをシリアル化する方法を探しています 例: group1でアカウンティングを行っているワーカーは、グループ1のアカウンティングを実行し、別のワーカーがグループ1のアカウンティングを行っている場合はキュー内で待機する必要があります。同時に実行してはいけないタスクをシリアル化するためにセマフォシステムを分散させるための分散セマンティックシステム
これは、セマフォテーブルを設定し、トランザクションを開始し、グループ1の行を更新し、自分のタスクを実行し、コミットすることでMySQLでこれを達成できます。
私はおそらく、0mq redisや何らかのメッセージングシステムを使用して同じ目標を達成し、私が今までにデータストアを使用できるようになったと考えていました。 また、ScalienDBがトランザクションをサポートしていることを確認するmysqlと同じ魔法の問題をScalienDBが解決できるかもしれないと考えていました。 ScalienDBのドキュメントは多少不完全であるように思われます。そのような方法でトランザクションを実行できるかどうかはまだ分かりません。
私の質問は次のとおりです。
1. ScalienDBは、別のクライアントも編集を行ったテーブルの行を編集する場合、クライアントが別のクライアントのコミットを待つようにするトランザクションを実行できます。
2.あなたはこのような何かに沸く何か実装することをお勧めどのようにメッセージングシステムを使用して:理想的には私は、集中ブローカーに依存
3にこのシステムを望んでいないだろう
var semaphore = semaphore_group()
semaphore.acquire('task1',function(){
// do work after a sophomore is locked in
semaphore.release() //
})
がありますこの問題に合う代替ソリューションは、私がノードについて最も愛する
この文脈では「何か」とは何ですか? – Joe
セマフォを意味すると思います。 –
私はsemaphoreを意味しました – work4liberty