なんだかわからない同期の仕組み
2013年01月10日 11:10
#どっちがどっちへデータを移すの?
仕組みによっていろいろみたいだけど、、、
各データの更新情報など、同期するためのSyncキーが情報元となる。
↓
差分データで更新するには、
更新情報の削除
同期処理で相手サーバに反映された更新情報が削除されます。
マスタ側の更新情報
同期対象のマスタグループに関連づけたすべてのレプリカグループへの反映が完了した時点で削除されます。
レプリカ側の更新情報
同期対象のレプリカグループに関連づけたマスタグループへの反映が完了した時点で削除されます。
↓
同期実行中のレプリケーショングループに対して、二重に同期を実行しようとした場合、後から実行した同期がエラーとなります。エラーとなった同期処理で反映しようとした更新情報は保持され、次回の同期実行で反映されます。
#何人もがアクセスしてるときって、どうしてるのかな?排他処理?
マルチタスクの同期;
複数のタスクがお互いの間で取り決めたやり方でタイミングを合わせつつ、処理を進めること。
共用するリソースの使用権の制御を行う(アクセスを調停する仕組み)。
HTTPサーバーがクライアントからの要求を処理するために、それぞれスレッドを割り当てるケースでは、サーバー起動時点からの累計処理数をカウントするために、グローバルな変数を用意する。各スレッドは処理の開始時にその値を読み込んで、完了時に一つ増やした値を書き込むものとする。理論はそうかも。しかし、実際には、ライアントからのアクセスが来る頻度とタイミング、処理にかかる時間によって、問題が起きたり起きなかったりするそうです。
そこで、だれかが、その処理を終わるまでは、次の人はいじれませんよ、っていうそれ以上分割できない単位で受け付ければいい。それが、アトミック処理のルールらしいです。