kyototycoon レプリケーションテスト
masterの起動
ホットバックアップの時と同じでulogを出力+sid(server id)にユニークな数字をつけて起動することでレプリケーションできる。
ktserver -pid master.pid -ulog master -sid 1 master.kct &
slaveの起動
自動でレプリケーションが始まるか試したいので一旦master側にデータを入れてからslaveを立ち上げる
ktremotemgr set key1 value1 ktserver -pid slave.pid -ulog slave -sid 2 -mhost localhost -mport 1978 -rts slave.rts -port 1979 slave.kct & ※ -mhost, -mportでマスターのホスト、ポートを指定 -rtsはrplication timestamp ktremotemgr get -port 1979 key1 -> value1
スレーブでも値が取れてるので立ち上げると自動でレプリケーションが走る様子。rtsは一時的にslaveだけ止まった時用に更新位置を保持してるファイルかな。
いくつか気になる点
- ulogが複数あって最初からじゃなくて中途半端なところからある場合(古いulogを削除した状態)でslaveを立ち上げた時はどうなるか
- stop slave的な事はできるのか
- 差分(遅延)の確認はできるのか -> 公式のドキュメント見る限りktremotemgr list -pvして全部のデータを出力して確認してるぽい...
追記
差分は
ktremotemgr report -port 1979
を実行するとrepl_delayという項目がでた。データの更新をしてなくても常に値が変わってるので時間そのもののズレをあらわしてるのだろうか。同じコマンドでアイテム数もチェックできるみたいなので、軽い整合性の確認くらいには使えそう。