1/30 (土)
[Movie] 劇場版 ペルソナ3 #4
チネチッタで『劇場版ペルソナ3 #4』を見る。 #1 が 2013年11月、#2 が 2014年6月、#3 が 2015年4月と随分ながく続いたがこれで完結か。
1/24 (日)
1/22 (月)
チョコ味の焼きそば
セブンイレブンで明星「一平ちゃん 夜店の焼きそば チョコソース付」を見つけて思わず買ってみる。
見た目は普通の焼きソバソースをかけたインスタント麺と変わらないが、強烈にまずい。 融けたチョコが麺に混ざると凶悪な味になるのは喫茶マウンテンの甘口バナナスパで学習していたが、やはり思い出したくない味だ。
1/18 (月)
雪が降る
関東圏にこの冬はじめての本格的な雪が降る。 東横線はダイヤが大幅に乱れたようで、元住吉駅は地上から入場制限をするほどの混雑ぶりだ。 出社が2時間近く遅れる。
1/10 (日)
[Movie] 傷物語
TOHO シネマズ川崎で『傷物語』を観たのだが、これは分割の一部なのね orz。
断熱カーテンライナー
1月2日に買った足元の電熱マットは冷えを冷やしてはくれるのだが、窓を伝ってくる冷気は防げない。 そこでラゾーナ川崎のユニディで断熱カーテンライナーというのを買ってみた。 カーテンの内側に挟むものらしいが、単体で導入してもコールドドラフトが防げるようになった。
部屋全体が寒いのはいかんともし難いが。
1/5 (火)
[PostgreSQL] PostgreSQL でトランザクションID周回のデバッグ方法
PostgreSQL のトランザクション番号(XID)は 32 ビット整数で、3 番からはじまりトランザクションが開始されるごとに +1 し、UINT_MAX で 0 にリセットされぐるぐる周回する。 XID はトランザクションの前後関係を判定するために大小比較が必要である。 そのためデータベース内の XID は 2^32 の半分の 2^31 の範囲に収まっている必要がある。 過去に発行した XID は一定の期間が経過すると、XID を「凍結」することで大小比較が可能な通常の XID から外してしまう。
このPostgreSQL を使ったソフトウェアを作っていると、このトランザクション ID 周回のテストをしたくなることがある。 しかしテスト時間を伸ばした程度では 2^31 は経過しない。
強制的にトランザクション ID を進めるには、PostgreSQL データベースクラスタの先行書き込みログの制御情報を変更できる pg_resetxlog を使う方法がある。 PostgreSQL のデータベースクラスタをいったん停止させた後に、pg_resetxlog コマンドを -x オプションを付けて実行するとトランザクション ID を変更することができる。
$ pg_resetxlog -x xid datadir
-x オプションは -x 0x1200000 のように十六進するで指定できる。
xid に安全に指定できるのは、clog ファイルが存在する範囲らしい。 データディレクトリ以下に pg_clog ディレクトリが存在し 0000 のような 16 進数で 4 桁のファイルが並んでいる。 これはそれぞれ 0xaaa0,0000 〜 0xaaaF,FFFF までのトランザクション ID を管理している。 この範囲 +1 の値までが安全らしい。
以下のような SQL コマンドで次のトランザクション ID を決めてからデータベースクラスタを停止させ、pg_resetxlog を使ってトランザクション ID を進めるべきか?
SELECT ((txid_current() / X'100000'::int)::int + 1) * X'100000'::int;
1/2 (土)
電熱マットを購入
今のアパートは角部屋で、作業机は道路に面した壁側においている。 机の前には中腰窓があり雨戸をいつも閉めているが冷気が伝わってきて足が寒い。 窓やサッシから冷気が伝わってくる現象をコールドドラフトというらしい。
あまりに寒いので足だけを温められる電熱マットの購入を決意。 川崎ヨドバシで日立 マルチクッション HLU-MK1 というのを 5,310 円で購入。
これに足を入れていると明日の冷えは解消できた。 ただコールドドラフトは続いていて太ももあたりは寒い。 なんか対策が必要だ。