0

私は Sphinx RT インデックスと MySQL DB を使用しています。現在抱えている問題は、データを一貫させる必要があり、両方で通常の挿入を使用することは正しい方法ではないということです。インデックス データまたは間違ったデータベース データ。

MySQL DB に次のテーブルがあるとします。

id, text
1, test is test

RTインデックスにも同じものがあります

id, text

ここで発生する典型的な競合状態は、2 人のユーザーが同時にコンテンツを更新している場合です。

したがって、ユーザー A が次のテキストで更新した場合

feeling good

ユーザー B は次のテキストで更新します

nice whether 

起こりうる多くのことの1つはこれです

Update RT index with user A text 
Update DB table with user B text
Update RT index with user B text
Update DB table with user A text

したがって、誰かがテキストを検索すると、DB にないインデックスから結果が得られます。

PHP ページから UDP リクエストを受け取り、DB を更新するデーモンを中間に配置しても問題ありませんか? 以下のようなもの

php page --send both requests via UDP--> dameon 
php page <--send successful receive via UDP-- dameon 
daemon --send two MySQL updates request --> MySQL
4

1 に答える 1