早くなったのか?
5.5から5.6への
アップグレード事例
株式会社ベストリザーブ

貫井 剛
高橋 良明
システム概要
Site R
Master
DB

Slave
DB

Master
DB

Slave
DB

Cycle
Crawler

Site J

Web/App
Server

Site Q

Web/App
Server
Master
DB

Slave
DB

Master
DB

Browser

Slave
DB

Action
Crawler

Site Y

Site B

HTML
取得・解析

データ登録
リクエスト

データ登録

レプリ
ケーション

データ検索

情報閲覧
システム規模(クロール編)
サイクルクロール(以下の規模を約20時間でデータ収集)


5サイト



120日分



のべ10万ホテル



のべ150万プラン



500万ページ



100プロセス

アクションクロール


クロール実施 顧客の約1割弱



クロール実施 120プロセス

株式会社ベストリザーブ
システム規模(DB編)


CPU : Intel Xion 2.8GHz(4Core)



Memory : DDR3 16Gb



Strage : SATA3 RAID1+0



DB File : 40Gb/月 ×40ヶ月



Red Hat Enterprise Linux 6

同じスペックのサーバが8台、Master・Slaveで4セットのDB
サーバを構成

ホテルの所在地などを元にして、どのサーバにデータを保
存するのかはアプリケーション側で選定
株式会社ベストリザーブ
アップグレードの手順
1.

MySQLの停止

2.

バックアップの作成

3.

アップグレードバイナリ環境への移行

4.

設定ファイルの更新

5.

MySQLの起動

6.

mysql_upgradeの実行

7.

MySQLの停止

8.

MySQLの起動

株式会社ベストリザーブ
アップグレードの注意点
当社でのアップグレード時の詰まった点


OS環境
glibc のバージョンが2.5以上が必要



新機能に対するパラメータ
レプリケーションのチェックサム機能
(binlog_checksum)



既存のパラメータのデフォルト値
テーブル単位にデータファイルを作成
(innodb_file_per_table)



廃止されるパラメータ
InnoDBの内部データなどを保持するための領域
(innodb_additional_mem_pool_size)

株式会社ベストリザーブ
Before⇔After 1
サーバステータス
Master DB
Status
Connections

Before(5.5)

After(5.6)

Difference

29,989

33,180

3,191

Bytes_received

212,258,673

267,941,567

55,682,894

Bytes_sent

625,357,151

1,091,448,872

466,091,721

Innodb_data_read

437,479,869

1,106,519,440

669,039,571

Innodb_data_written

482,531,551

1,266,796,277

784,264,726

Before(5.5)

After(5.6)

Slave DB
Status

Difference

Innodb_data_read

410,713,043

382,077,017

-28,636,026

Innodb_data_written
株式会社ベストリザーブ

618,098,477

952,248,854

334,150,377
Before⇔After 2
バッファの使用率とヒット率
Before⇔After 3
オプティマイザ
5.6で導入された「Index
Condition Pushdown
Optimization(ICP)」
が効くようになり同じ
SQLでも実行時間の短縮
されました。

結果は如何に!

株式会社ベストリザーブ

select
daily.01_stock_room,
daily.01_stock_room_status,
daily.01_discount_price,
daily.01_sales_status,
daily.31_stock_room,
daily.31_stock_room_status,
daily.31_discount_price,
daily.31_sales_status,
from
t_plan_base as base
inner join
t_plan_daily_history_201307 as daily
on
base.supplier_hotel_id = daily.supplier_hotel_id
and base.capacity
= daily.capacity
and base.room_plan_id
= daily.room_plan_id
where
base.supplier_hotel_id = ?
and base.capacity
=?
and base.active_status
=1
and daily.active_status = 1
and daily.check_dtm <= '2013-07-31 09:00:00'
and ifnull( daily.next_check_dtm, '2013-07-31 09:00:00') >= '2013-07-31 09:00:00'
Before⇔After 4
実処理時間
Proccess
デイリーレポート
(6万件のバッチ処理)

最低価格一覧

販売履歴

株式会社ベストリザーブ

Before(5.5)

After(5.6)

864秒

740秒

6秒

4秒

12秒

8秒

Difference
株式会社ベストリザーブ
質疑応答
アップグレードにかかった作業時間は?

早くなる以外のメリットは?

MySQL5.6って本当にイイの?

今後MySQLに期待することは?

ベストリザーブってロンゲとスキンしか居ないの?

株式会社ベストリザーブ
宣伝:ベストリザーブ
http://www.bestrsv.com/


ハイランクホテル
プレミアムなホテルを
リーズナブルなプライス
でご紹介



お天気保険
雨が降ったら宿泊料金全
額返金!



ポイントキャンペーン中
もれなく300ポイント贈
呈!実質300円引きで泊
まれちゃう!泊まった後
にも特別ボーナスが!

株式会社ベストリザーブ
参考資料など


Release Notes
http://dev.mysql.com/doc/relnotes/mysql/5.6/en/index.html



Upgrade手順
http://dev.mysql.com/doc/refman/5.6/en/upgrading-downgrading.html



5.5から5.6へのアップグレードに関する記載
http://dev.mysql.com/doc/refman/5.6/en/upgrading-from-previousseries.html



レプリケーションに関する注意点
http://dev.mysql.com/doc/refman/5.6/en/replication-upgrade.html



サーバステータスの説明
http://dev.mysql.com/doc/refman/5.6/en/server-status-variables.html

株式会社ベストリザーブ
ご静聴ありがとうございました。

早くなったのか? MySQL5.5から5.6へのアップグレード事例