スマフォ用サイト


スマフォ用サイトのQRコード

このページを共有


1月のカレンダー



1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

カテゴリ一覧

ただの日記(965)
原付生活(3)
子育て日記(11)
PC関連(11)
もろもろ日記(908)

競馬+POG(1595)
当たらない予想と反省会(707)
POGネタ(58)
競馬について考える(19)
競馬もろもろ(219)
ダービーウィーク!(14)
2011年競馬場訪問記(27)
2012年競馬場訪問記(53)
2013年競馬場訪問記(61)
2014年競馬場訪問記(40)
2015年競馬場訪問記(44)
2016年競馬場訪問記(25)
2017年競馬場訪問記(36)
2018年競馬場訪問記(39)
2019年競馬場訪問記(34)
2020年競馬場訪問記(24)
2021年競馬場訪問記(37)
2022年競馬場訪問記(51)
2023年競馬場訪問記(70)
2024年競馬場訪問記(22)
地方競馬馬主(5)
ひとくち馬主(3)

ホームページ製作(366)
PHPの備忘録(13)
CSSの備忘録(5)
JavaScriptの備忘録(2)
ホームページもろもろ(287)
Flashの備忘録(12)
管理人の備忘録(21)
スマフォ用サイト作成(19)

自宅サーバ(360)
FreeBSD(17)
Apache(4)
PHP(5)
MySQL(17)
サーバもろもろ(145)
障害連絡(131)
リニューアルプロジェクト 2011-2012(41)

お仕事(48)
お仕事(48)

旅の記録・水曜どうでしょう関連(43)
水曜どうでしょう(11)
2009年四国お遍路(6)
2009年アンコールワット(5)
2010年ベトナム(3)
2010年いっそ九州(5)
2010年北海道179市町村(5)
2011年春の一人旅(2)
2011年四国お遍路(6)


先月までのネタ

2024年
2024年4月(3)
2024年3月(7)
2024年2月(8)
2024年1月(13)

2023年
2023年12月(11)
2023年11月(8)
2023年10月(10)
2023年9月(7)
2023年8月(9)
2023年7月(10)
2023年6月(6)
2023年5月(10)
2023年4月(5)
2023年3月(4)
2023年2月(6)
2023年1月(6)

2022年
2022年12月(9)
2022年11月(8)
2022年10月(5)
2022年9月(5)
2022年8月(2)
2022年7月(6)
2022年6月(9)
2022年5月(3)
2022年4月(3)
2022年3月(4)
2022年2月(7)
2022年1月(5)

2021年
2021年12月(8)
2021年11月(9)
2021年10月(4)
2021年9月(3)
2021年8月(2)
2021年7月(6)
2021年6月(12)
2021年5月(2)
2021年4月(8)
2021年3月(2)
2021年2月(7)
2021年1月(2)

2020年
2020年12月(8)
2020年11月(3)
2020年10月(4)
2020年9月(1)
2020年8月(2)
2020年7月(7)
2020年6月(6)
2020年5月(9)
2020年4月(11)
2020年3月(8)
2020年2月(5)
2020年1月(9)

2019年
2019年12月(4)
2019年11月(5)
2019年10月(7)
2019年9月(2)
2019年8月(2)
2019年7月(8)
2019年6月(2)
2019年5月(3)
2019年4月(2)
2019年3月(4)
2019年2月(3)
2019年1月(1)

2018年
2018年12月(8)
2018年11月(5)
2018年10月(10)
2018年9月(6)
2018年8月(1)
2018年7月(7)
2018年6月(5)
2018年5月(7)
2018年4月(19)
2018年3月(3)
2018年2月(3)
2018年1月(11)

2017年
2017年12月(14)
2017年11月(11)
2017年10月(18)
2017年9月(18)
2017年8月(21)
2017年7月(29)
2017年6月(26)
2017年5月(23)
2017年4月(18)
2017年3月(11)
2017年2月(11)
2017年1月(16)

2016年
2016年12月(25)
2016年11月(24)
2016年10月(30)
2016年9月(15)
2016年8月(16)
2016年7月(15)
2016年6月(18)
2016年5月(30)
2016年4月(28)
2016年3月(29)
2016年2月(26)
2016年1月(32)

2015年
2015年12月(30)
2015年11月(29)
2015年10月(30)
2015年9月(27)
2015年8月(28)
2015年7月(28)
2015年6月(28)
2015年5月(29)
2015年4月(30)
2015年3月(28)
2015年2月(26)
2015年1月(29)

2014年
2014年12月(31)
2014年11月(28)
2014年10月(31)
2014年9月(29)
2014年8月(29)
2014年7月(31)
2014年6月(31)
2014年5月(30)
2014年4月(30)
2014年3月(28)
2014年2月(27)
2014年1月(31)

2013年
2013年12月(29)
2013年11月(27)
2013年10月(29)
2013年9月(27)
2013年8月(28)
2013年7月(28)
2013年6月(29)
2013年5月(29)
2013年4月(30)
2013年3月(26)
2013年2月(24)
2013年1月(29)

2012年
2012年12月(28)
2012年11月(27)
2012年10月(28)
2012年9月(30)
2012年8月(31)
2012年7月(33)
2012年6月(32)
2012年5月(33)
2012年4月(35)
2012年3月(30)
2012年2月(27)
2012年1月(31)

2011年
2011年12月(25)
2011年11月(25)
2011年10月(28)
2011年9月(28)
2011年8月(28)
2011年7月(28)
2011年6月(27)
2011年5月(26)
2011年4月(16)
2011年3月(9)
2011年2月(11)
2011年1月(9)

2010年
2010年12月(12)
2010年11月(11)
2010年10月(8)
2010年9月(13)
2010年8月(10)
2010年7月(20)
2010年6月(6)
2010年5月(9)
2010年4月(2)
2010年3月(3)
2010年2月(5)
2010年1月(8)

2009年
2009年12月(9)
2009年11月(2)
2009年10月(4)
2009年9月(3)
2009年8月(1)
2009年7月(9)
2009年6月(3)
2009年5月(14)
2009年4月(10)
2009年3月(11)
2009年2月(9)
2009年1月(10)

2008年
2008年12月(1)
2008年11月(1)
2008年10月(1)
2008年9月(5)
2008年8月(1)
2008年7月(1)
2008年6月(2)
2008年5月(1)
2008年4月(1)
2008年3月(2)
2008年2月(7)
2008年1月(7)

2007年
2007年12月(11)
2007年11月(7)
2007年10月(8)
2007年9月(12)
2007年8月(11)
2007年7月(5)
2007年6月(16)
2007年5月(8)
2007年4月(2)
2007年3月(14)
2007年2月(2)
2007年1月(8)

2006年
2006年12月(4)
2006年11月(6)
2006年10月(7)
2006年9月(10)
2006年8月(9)
2006年7月(20)
2006年6月(13)
2006年5月(3)

2005年
2005年9月(13)
2005年8月(13)
2005年7月(18)
2005年6月(24)
2005年5月(26)
2005年4月(26)
2005年3月(27)
2005年2月(22)
2005年1月(26)

2004年
2004年12月(29)
2004年11月(29)
2004年10月(26)
2004年9月(23)
2004年8月(12)


最近よく読まれてるネタ



Excel VBAで「SPAT4自動投票システム」を作ってみました。
(2020年7月19日のネタ:49回)

本日は皐月賞 の観戦に中山競馬場 へ行ってきました。
(2024年4月14日のネタ:30回)

管理人が競馬を初めて31年目の記念日となる今日、中山競馬場 へ行ってきました。
(2024年4月7日のネタ:30回)

(簡単に) 昨日は大井競馬場 へ行ってきました。
(2024年4月13日のネタ:29回)

今夜は競馬の話題を書こうと思ったんですが…。
(2014年3月13日のネタ:27回)

G1予想大会の結果を掲載しました(…即席ですが)
(2011年4月25日のネタ:25回)

…来週から、週末予想のタイトルが変わります(…今年初?の祝勝会。)
(2012年5月13日のネタ:24回)

管理人の当たらないG1予想!皐月賞編!
(2012年4月14日のネタ:24回)

「The Sunday Breeze」から、1年ぶりに重大なお知らせです。
(2012年10月12日のネタ:23回)

【お知らせ】 「The Sunday Breeze」管理人から、皆様に重大なお知らせがございます。
(2015年10月9日のネタ:18回)



最近のコメント



今日は改修工事真っ只中の #京都競馬場 (パークウインズ京都競馬場)へ行ってきました。(チョネ)

本日は笠松競馬場へ行ってきました。(あいべ)

管理人の今年の目標が一つ増えました…。(あああ)

まあそんなに書くことはありませんが…。(momo)

【管理人からご挨拶】 『The Sunday Breeze』は5月25日に開設19周年を迎えます。(アオヤギ)

4月からスタートする「Sunday Breeze POG!」の一部ルール追加について。(アオヤギ)

昨日「Sunday Breeze賞」の観戦に帯広競馬場へ行ってきました。(白イチゴ)

本日5月25日、「The Sunday Breeze」は18回目の誕生日を迎えました。(アオヤギ)

【「G1予想大会」プレリリース終了】皆様のご協力、本当にありがとうございました。(アオヤギ)

【再度お知らせとお願い】今週からの「G1予想大会」、新機能プレリリースを公開中です。(白イチゴ)



ネタの検索



管理人の競馬観戦記録


(2024年)

JRA中山競馬場
1月6日 (中山金杯)
1月14日 (京成杯)
3月2日 (オーシャンS)
4月7日
4月14日 (皐月賞)

JRA阪神競馬場
3月23日 (毎日杯)

JRA小倉競馬場
1月27日

水沢競馬場
3月10日 (奥州弥生賞)

船橋競馬場
1月17日 (ブルーバードC)
1月19日
2月9日
3月5日

大井競馬場
4月12日

川崎競馬場
1月5日
3月11日

笠松競馬場
1月25日

名古屋競馬場
1月19日

園田競馬場
3月22日

姫路競馬場
1月26日

高知競馬場
2月25日 (レジーナディンヴェルノ賞)

佐賀競馬場
1月28日

2012年以降の競馬観戦インデックス


管理人の競馬家計簿


(最近14日分)

2024年4月6日福島
41勝  回収率:140.0%

2024年4月6日中山
71勝  回収率:35.5%

2024年4月6日阪神
62勝  回収率:167.0%

2024年4月7日中山
20勝  回収率:0.0%

2024年4月7日阪神
20勝  回収率:0.0%

2024年4月8日大井
10勝  回収率:0.0%

2024年4月9日大井
11勝  回収率:240.0%

2024年4月10日大井
10勝  回収率:0.0%

2024年4月11日船橋
10勝  回収率:0.0%

2024年4月11日名古屋
10勝  回収率:0.0%

2024年4月12日船橋
22勝  回収率:150.6%

2024年4月12日大井
50勝  回収率:0.0%

2024年4月14日福島
10勝  回収率:0.0%

2024年4月14日中山
61勝  回収率:55.0%

2024年4月14日阪神
11勝  回収率:216.0%

2024年4月17日門別
11勝  回収率:150.0%

2024年4月18日浦和
10勝  回収率:0.0%

2024年4月18日門別
10勝  回収率:0.0%

2024年合計
41890
勝率:21.5%  回収率:64.9%
(万馬券:5本的中)

2023年合計
1772537
勝率:30.3% 回収率:71.2%
(万馬券:11本的中)

2022年合計
2097563
勝率:26.8% 回収率:66.4%
(万馬券:29本的中)

2021年合計
2147527
勝率:24.5% 回収率:67.8%
(万馬券:24本的中)

2020年合計
3046684
勝率:22.5% 回収率:65.2%
(万馬券:39本的中)

2019年合計
1438346
勝率:24.1% 回収率:68.2%
(万馬券:39本的中)

2018年合計
1488367
勝率:24.7% 回収率:75.1%
(万馬券:39本的中)


管理人のつぶやき


(皆様のフォローをお願いします。)

@sunday_breeze からのツイート

一連のデータベース障害まとめ。(ちょっと技術的なことを。)

ここ数日、ご覧の皆さまには
本当にご迷惑をおかけしました。
申し訳ありません。

今日は障害の原因など
技術的なことも含めてまとめて書いておきます。

-----

まずは1つ目。
データベースの処理遅延について。

このサイトではデータベースアプリケーションに
「MySQL」を導入しています。

これにはいくつかのエンジンがありまして
高速処理が売りのMyISAMというエンジン
安定性が売りのInnoDBというエンジンがまあ主な2つ。

これまでずっとこのサイトでは
MyISAMというエンジンを使用して、まあそこそこなスピードで処理ができていました。

んで先日より、更新系と参照系で使い分ける
レプリケーションという機能を使用して
プログラムでのデータ登録を更新系データベースに
MySQLの内部処理で非同期で参照系データベースと一致させ
Webからの参照を参照系データベースで行うという処理に変えました。
(更新系データベースは今までのサーバ(ゲストOS)上に、
参照系データベースは今までのサーバが動いているホストOS上に配置)

これは今までのサーバの負荷を軽減させることが目的です。


そしたら先日…(月曜日だったかな?)
更新系と参照系の同期の際に、なぜか極端に時間がかかってしまい
参照系データベースをロックしてしまうという現象が発生。

つまり
更新系データベースがデータを更新するために参照系データベースを握ってしまい、
他から参照系データベースを使うことが一切できなくなってしまうという。
いわゆる「排他制御」ってやつです。

これ、MySQLのMyISAMエンジンの一つの欠点だと思うんですが
データ更新の際にはテーブルロック(対象のデータが入っている表を全部ロック)
してしまうんですね。

1頭の結果を更新するのに
すべての結果データ(約680万データくらいあります)のすべてをロックしてしまうため
更新処理に何らかの不具合があって時間がかかってしまうと
すべてのデータが表示できなくなってしまいます。

こら参った…と。

そこで
InnoDBというエンジンだと
テーブルロックではなく行ロック(更新対象の1データのみをロック)する構造なため
ロックによる遅延がなくなるのではないかと。
ということでエンジンをMyISAMからInnoDBへ変えて、
データもすべて変換して…ってのが火曜日の話。


んで昨日。冒頭に書いた通り、
高速だけどテーブルロック仕様のMyISAMから
安定していて行ロック使用のInnoDBに変えて
…当然高速ではなくなります。

単純なデータ取得処理でも数十秒かかるようになってしまい
結局はこれによってデータベース全体の負荷が上がり
ページの読み込みが遅いとか、ページが全く表示されないとか
様々な不具合が発生しました。
(ページが全く表示されないのはWebサーバの設定(同時アクセス数上限を超えたため))

単純なWebからの参照だけでなく
更新系データベースからの同期処理にも遅延が発生し…
ほぼ丸1日のデータ更新が遅れました。


本日夜勤明けで
データベースをInnoDBエンジンからMyISAMエンジンへ戻しました。

ですがこれでは根本的な解決策にはなってません。
(結局テーブルロックされる状態にもどってしまったので)

一応処理スピードは以前の状態に戻ったものの
何らかの原因でロックされてしまった場合に、きっとまた一気に高負荷になる可能性があります。


今後の方針としては
一応InnoDBを使うことを前提として
データベースそのものの設定の見直し(メモリの使い方とかファイルの設定など)
そしてSQL(データベースからデータを取得する言語)の書き方を変えるなどして
処理を少しでも高速に動くように直していくしかないんじゃないかと。

うちのデータベースにはさまざまなデータがたくさん入っていますから
どのデータを取得するときにどれくらいの時間がかかるのかを検証したうえで
その部分を中心に改善をしていかないとなりません。

-----

2つ目の障害は「G1予想大会」。
予想が投稿されず、表示もされない。でもポイントは消費しているというところ。

実はこれ、内部的には投票されていました。
ですが、一部のデータしか登録されておらず
データが不完全な状態で登録されていたために表示できませんでした。

この障害も
結局は「更新系」「参照系」の話に通じます。

参照系データベースはつい最近インストールしたもので
更新系データベースとはバージョンが異なります。

おそらくデータベースの仕様だと思うんですが
データベース上のテーブルに「デフォルト値」が設定されていない場合の挙動が
更新系データベースと参照系データベースとで異なっていました。

これまで普通に使用していたデータベース(今の更新系データベース)では
データを挿入する際、値を設定していない列に入るデータ(デフォルト値)は
’’(空文字)が標準で入りました。これは何の設定をしなくても。

んで最近インストールしたデータベース(参照系データベース)では
デフォルト値が設定されていない列に何も値をセットしないで挿入すると
エラーとなりデータが挿入されなくなりました。

これ…先ほどまで気づきませんでした。

今回の対応は
データベースの表のすべての列にデフォルト値を設定して
これまでと同じ挙動になることを確認しています。

次回の「G1予想大会」は2月の中旬ですので
それまでに再度確認のため動作試験を行ってみようと思っています。

-----

今朝夜勤から帰宅してデータベースの設定見直し後は
一応安定して動いているみたいです。
サーバの負荷もそれほど高くありません。

今後はSBメンバーズサイトをはじめ、各ページのリニューアルを進めるにあたり
データベースの構成変更が多く発生しますが
今回発生した障害の対応も兼ねてデータベースをいじっていく予定です。

今後も技術的なことも含め
気になったことは少しずつメモとしてブログにも残そうと思います。


改めて
皆さまにはここ数日多大なるご迷惑をおかけしましたことを
重ねてお詫びするとともに
今後もこんな拙い運営の「The Sunday Breeze」ではありますが
ご愛顧いただきますようよろしくお願い申し上げます。

人気ブログランキングへ 


このネタへのコメント:


コメントはありません。
お名前(入力必須):
ログインID(SBメンバーズの方)(任意):
(SBメンバーズの方から頂いたコメントは、管理人の承認なしで書き込まれます。)

タグは使えません。

URL(任意):
メール(任意):

右に「さんでーぶりーず」と入力してください。