サーカス, 仮面ライダー響鬼のオープニングテーマ, pgpool を HA 目的で使うためのコツ, PSX 録画失敗
サーカス
この間の日曜に、僕の両親と家族みんなで、今味の素スタジアムで開催されている「木下大サーカス」を見に行きました。朝早くいったおかげでいい席に座れたし、天気も良かったし、子どもたちも楽しかった様子。染井吉野はもう終わってしまっていますが、代わりに梨の花や八重桜がとても綺麗でした。
仮面ライダー響鬼のオープニングテーマ
相変わらず面白い仮面ライダー響鬼。響鬼さんの幼なじみ、というみどりさんもとてもすてきな方で、ますます見るのが楽しみになってきました。
ところで、仮面ライダー響鬼のオープニングテーマにはいくつかバージョンがあるんですよね。これまで気が付いたのは、普通バージョン (ストリングスと太鼓?)、ラッパバージョン (息吹鬼さんメインの回でかかる)、普通とラッパの組み合わせ、女性ボーカルバージョン (みどりさんメインの回?) がありました。すごく凝ってるなぁ。響鬼は音やリズムにとても気を遣って作られている印象がありますね。
pgpool を HA 目的で使うためのコツ
PostgreSQL 用のコネクションプーリング・レプリケーションサーバである pgpool にはご存じの通りレプリケーション機能があるのですが、負荷分散やコネクションプーリングではなく HA を目的として pgpool を利用する場合、いくつか気をつけなければいけないポイントがあるようです。
まず、pgpool.conf は次のように設定します。
replication_mode = true
replication_strict = true
load_balance_mode = false
replication_stop_on_mismatch = true
気をつけるべきは load_balance_mode の設定で、性能向上を目指してこのパラメータを true としてしまうと、その下の replication_stop_on_mismatch が効かなくなってしまいます。HA 目的で使う場合はある程度性能を犠牲にして上記のように設定する必要があるようです。
次にアプリケーション側で注意する点として、
単純 SELECT も明示的な transaction ブロックへ入れる。SELECT の前に明示的に LOCK TABLE 〜 IN ACCESS SHARE MODE を実行する。- 更新時はテーブルに対して ACCESS EXCLUSIVE ロックをかける。
ことが必要となります。こういったケアを行わないと、タイミングによっては deadlock したり、master、secondary から返答される ResultSet の結果行数不一致が起こり、pgpool が縮退してしまいます。更新時にテーブルを ACCESS EXCLUSIVE でロックする、となると、性能的にはかなりスポイルされてしまうのですが、ここでもやはり安全性と性能のトレードオフが存在する、ということになります。
なお、更新時だけでなく SELECT 時もロック待ちの可能性がある、となると、dead lock の可能性が飛躍的に高まります。lock の確保順序には十分気を遣ってコーディングする必要があります (複数のテーブルを join しているような SELECT 文を発行する前には、明示的に LOCK TABLE してあげる必要があります)。
毎度のことながら pgsql-jp メーリングリストの皆さんには大変お世話になりました (こちらから始まるスレッドです)。どうもありがとうございました。
PSX 録画失敗
そういえば日曜日、PSX が完全にフリーズして、初めて予約録画にも失敗してしまいました。操作中にフリーズしてしまうことは比較的よくあって、そんなときはいつも電源長押しで復帰していたんですが、今回はそもそも電源ボタンを押しても電源が入ってこない状態。長押ししてもうんともすんともいいません。スリープ中を示す赤い LED は点灯していたんですが…。結局、コンセントを抜いてしばらく置き、その後再度電源を入れてみたところ復帰しました。前の日にゲームをやってから電源を落とす時のシーケンスでどこか秘孔を突いてしまったのかな。
大変お手数をおかけしました&お世話になりました>ちゅ〜さん。