New Firebird2.5.20100123
Upcoming SlideShare
Loading in...5
×
 

New Firebird2.5.20100123

on

  • 3,362 views

OSC2010/Oita での講演資料です。

OSC2010/Oita での講演資料です。

Statistics

Views

Total Views
3,362
Views on SlideShare
3,064
Embed Views
298

Actions

Likes
0
Downloads
16
Comments
0

4 Embeds 298

http://blog.tomnekosoft.com 271
http://www.tomnekosoft.com 19
http://www.slideshare.net 7
http://ig.gmodules.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

New Firebird2.5.20100123 New Firebird2.5.20100123 Presentation Transcript

  • Firebird2.5がやってきた!~MySQL、PostgreSQLとのパフォーマンス比較~
    Firebird日本ユーザー会 はやしつとむ
    OSC2010/Oita版
  • 10.1.23
    Copyright(c) 2009 Firebird日本ユーザー会
    1
    そもそもFirebirdとは
    Firebird
    2.0
    Firebird
    2.1
    Firebird
    2.5
    【無償】
    【機能的にほぼ同一】
    Firebird
    1.5
    InterBase
    6.0
    OpenSource版
    Firebird
    1.0
    InterBase
    4.x Linux
    FreeBSD版
    Now β
    InterBase
    4.x商用版
    InterBase
    5.x
    InterBase
    6.0
    InterBase
    6.5
    InterBase
    7.0,7.1
    【有償】
    InterBase
    2007
    InterBase
    2009
    InterBase
    7.5
    【日本未発売】
    ■起源はBorland社の商用RDBMS interBase
    ■一時オープン化されたソースから分岐
    ■現在はそれぞれ別の進化をとげる
    1
  • InterBaseはM1エイブラムス戦車に搭載されていた
    10.1.23
    Copyright(c) 2009 Firebird日本ユーザー会
    2
  • Firebirdを作ったのは?
    Copyright(c) 2009 Firebird日本ユーザー会
    生みの親 Jim Starkey
    ロシアの天才 Dmitry Yemanov
    世界中の開発者とユーザーの皆さん
    10.1.23
    3
  • 10.1.23
    Copyright(c) 2009 Firebird日本ユーザー会
    4
    Firebirdの市場シェア
    EDC,2005,OpenSource RDBMS調査結果
    ワールドワイドでは
    MySQL
    vs
    Firebird
    MとFとPで
    「オープンソース
    データベース
    御三家」
    と呼びましょう!
    情報提供:Evans Data Corporation
    http://www.evansdata.com/n2/pr/releases/EDCDB05_01.shtml
    4
  • Firebird World Wide
    Copyright(c) 2009 Firebird日本ユーザー会
    Firebird World Conferrence @italy2008-11
    夜中まで飲んで討論
    Firebird Developer Day @Brazil2009-07
    480人も集まった!
    10.1.23
    5
  • Firebird 2.5RC1
    Copyright(c) 2009 Firebird日本ユーザー会
    FB2.5の主要な目標
    • 新しいスレッドモデルを実装すること
    • Supre Classicエンジン
    • SQLレベルの新機能は最低限(といいつつ結構ある)
    • CREATE/ALTER/DROP USER 文の追加
    • PSQL でのAUTONOMOUS TRANSACTION
    • EXECUTE STATEMENT での外部データベース接続
    • パフォーマンスの改善
    • 64bit版では、DBキャッシュが32TBまで拡張!
    • 2.5Alpha1の時のリリースノートが248kbしかなかったのに、2.5Beta1で500kb、2.5Beta2で573kb、2.5RC1で696kb とどんどん増えている・・・
    6
    10.1.23
    6
  • Firebirdのアーキテクチャ
    Firebirdには、以下の3つのエンジンアーキテクチャが存在する。
    MySQL
    PostgreSQL
    New FB2.5
    Copyright(c) 2009 Firebird日本ユーザー会
    7
    10.1.23
    7
  • Super Server
    Client 1
    Client 1
    Client 1
    Client 1
    Client 1
    Client 1
    Client 1
    Client 1
    Client 1
    Clientn
    Thread 1
    Thread 1
    Thread 1
    Thread 1
    Thread 1
    Thread 1
    Thread 1
    Thread 1
    Thread 1
    Thread 1
    Thread n
    1Process only
    have a cache
    perDatabase
    Process 1
    Database A
    Database B
    Security2.fdb
    Copyright(c) 2009 Firebird日本ユーザー会
    8
    10.1.23
    8
  • Classic Server
    Client 1
    Client 1
    Client 1
    Client 1
    Client 1
    Client 1
    Client 1
    Client 1
    Client 1
    Clientn
    Process 1
    Process 1
    Process 1
    Process 1
    Lock Manager
    Process 1
    Process 1
    Process 1
    Process 1
    Process 1
    Process n
    Database A
    Database B
    Each Processes
    have own cache
    Security2.fdb
    Copyright(c) 2009 Firebird日本ユーザー会
    9
    10.1.23
    9
  • Super Classic
    Client 1
    Client 1
    Client 1
    Client 1
    Client 1
    Client 1
    Client 1
    Client 1
    Client 1
    Clientn
    Thread 1
    Thread 1
    Thread 1
    Thread 1
    Thread 1
    Thread 1
    Thread 1
    Thread n
    Each threads
    Have own cache
    Process 1
    Database A
    Database B
    Security2.fdb
    Copyright(c) 2009 Firebird日本ユーザー会
    10
    10.1.23
    10
  • Firebird2.5 RC1
    Copyright(c) 2009 Firebird日本ユーザー会
    管理機能の強化
    • CREATE/ALTER/DROP USER 文の追加
    • 新system role RDB$ADMINがODS 11.2で追加され、SYSDBA権限をデータベース毎に他のユーザーに移譲出来るようになった
    • モニタリングテーブルの拡張
    • Firebird2.1.1では、SYSDBA以外の一般ユーザーは自分のコネクションに関する情報しか見ることが出来なかった。
    • Firebird2.5+Firebird2.1.2以降では、「同じ接続ユーザー名」のコネクションに関する情報も見ることが出来る。
    • MON$MEMORY_USAGE、MON$CONTEXT_VARIABLESの新設
    APIの追加
    • SQL文の実行時に、SQL-2003標準の5文字のSQLSTATE コードを返す
    • isc_dsql_free_statement APIで、新たにDSQL_unprepare定数を使用出来るようになった
    11
    10.1.23
    11
  • Firebird 2.5 RC1
    Copyright(c) 2009 Firebird日本ユーザー会
    その他のSQL言語の機能追加
    • SIMILAR TO正規表現のサポート(1BYTE系のみ)
    • ALTER COLUMNが計算項目で可能に
    • VIEWのFROM句に選択型ストアドプロシージャを指定可能に
    • LIST()関数で区切り文字の指定が拡張された
    Data-handlingの機能拡張
    • 新しい組み込み関数:UUID CHAR(16) OCTETS stringsをRFC4122-compliant formatに変換
    • 32-bitと64-bit integersをhexadecimal での文字列型数値やX-prefixedされた文字列でのバイナリ表現への変換
    12
    10.1.23
    12
  • Firebird2.5 RC1
    Copyright(c) 2009 Firebird日本ユーザー会
    国際化関係の機能追加
    • CREATE DATABASE文でデフォルトのコレーションを指定出来るようになった
    • UNICODE_FSSで不正なコードが許されなくなった。UTF8と同様の対応。
    • GBAK のリストアスイッチにFIX_FSS_DATA and FIX_FSS_METADATAが追加され、上記の対応をリストア時に取ることが出来るようになった。
    • Unicodeにアクセント付のCOLLATEが追加、UNICODE_CI_AI
    • ALTER CHARACTER SET 文を追加キャラクタセットのデフォルトコレーションを変更出来るようになった
    • SJISとEUCJで厳格なチェックが行われるようになった。チェックルーチンは元々あったのをActiveにした。(セキュリティ対策)
    13
    10.1.23
    13
  • DBBench
    Copyright(c) 2009 Firebird日本ユーザー会
    PostgreSQLのpgbenchをFirebird/MySQLへ移植
    • Delphi + dbExpressによるマルチスレッド実装
    • dbExpressのドライバを切り替えれば他のDBへも応用可能
    • 単一のコード/バイナリで、現状Firebird/MySQL/PostgreSQLをテスト出来る
    • GUIによる設定が可能
    • ものすごく手軽なデータベースベンチマーク
    • Firebirdのベンチマークは、この他にTPC-RやAS3APなどがあります。
    14
    10.1.23
    14
  • TPC-B
    Copyright(c) 2009 Firebird日本ユーザー会
    TPCとは、Transaction Processing Performanc Counsilが定める標準ベンチマーク仕様
    • TPC-Bは1990年制定、95年に非推奨となっている
    • 同種のトランザクションが多数並行するバッチ処理等を想定したテスト
    • 銀行の支店間取引をシュミレートしている
    15
    10.1.23
    15
  • Copyright(c) 2009 Firebird日本ユーザー会
    TPC-B
    対象のテーブルは4つ
    • create table branches(bid int not null,bbalance int,filler char(88));
    • create table tellers(tid int not null,bid int,tbalance int,filler char(84));
    • create table accounts(aid int not null,bid int,abalance int,filler char(84));
    • create table history(tid int,bid int,aid int,delta int,mtime timestamp,filler char(22))
    10.1.23
    16
    16
  • Copyright(c) 2009 Firebird日本ユーザー会
    TPC-B
    処理内容は以下の流れ
    • update accounts set abalance = abalance + :delta where aid = :aid;
    • select abalance from accounts where aid = :aid;
    • update tellers set tbalance = tbalance + :delta where tid = :tid;
    • update branches set bbalance = bbalance + :delta where bid = :bid;
    • insert into history(tid,bid,aid,delta) values(:tid,:bid,:aid,:delta);
    17
    10.1.23
    17
  • Copyright(c) 2009 Firebird日本ユーザー会
    ScalingFactor
    Scalingfactoristestscale
    • Scalingfactoraffects
    • Branchcountequalsscalingfactor
    • Tellercountisscalingfactor * 10
    • Accountcountisscalingfactor * 100,000
    • SoIusescalingfactor100
    • Branchis100,Telleris1000,Accountsis10,000,000
    • Firebirddatabasealmost600MB,MySQLisalmost1.2GB
    18
    10.1.23
    18
  • Copyright(c) 2009 Firebird日本ユーザー会
    ベンチーク環境
    じゃんけんに買って手に入れて下さいね~
    AMD AthlonTM 1640B(2.7GHz)
    AMD PhenomTM 9350e(2.0GHz)
    HP製 ML115G5
    ECCは付いてるけど
    512MBDDR2-6400
    HDDは標準の160GBのまま・・・
    Non-ECC
    4GBDDR2-6400
    19
    10.1.23
    19
  • Firebird2.1vsFirebird2.5
    @WindowsServer2008
    10.1.23
    Copyright(c) 2009 Firebird日本ユーザー会
    20
  • Copyright(c) 2009 Firebird日本ユーザー会
    Firebird 2.1SS vs Firebird 2.5SS
    21
    Firebird2.1とFirebird2.5の結果を比較
    @Windows
    10.1.23
    21
  • Copyright(c) 2009 Firebird日本ユーザー会
    Firebird 2.1CS vs Firebird 2.5CS
    22
    Firebird2.1とFirebird2.5の結果を比較
    @Windows
    10.1.23
    22
  • Copyright(c) 2009 Firebird日本ユーザー会
    Firebird 2.1SS vs Firebird 2.5SC
    23
    Firebird2.1とFirebird2.5の結果を比較
    @Windows
    10.1.23
    23
  • Firebird2.1vsFirebird2.5
    @LinuxCentOS5.3
    10.1.23
    Copyright(c) 2009 Firebird日本ユーザー会
    24
  • Copyright(c) 2009 Firebird日本ユーザー会
    Firebird 2.1SS vs Firebird 2.5SS
    25
    Firebird2.1とFirebird2.5の結果を比較
    引き分け
    @Linux
    10.1.23
    25
  • Copyright(c) 2009 Firebird日本ユーザー会
    Firebird 2.1CS vs Firebird 2.5CS
    26
    Firebird2.1とFirebird2.5の結果を比較
    @Linux
    10.1.23
    26
  • Copyright(c) 2009 Firebird日本ユーザー会
    Firebird 2.1SS vs Firebird 2.5SC
    27
    Firebird2.1とFirebird2.5の結果を比較
    @Linux
    10.1.23
    27
  • MySQL5.1.40vsFirebird2.5
    @WindowsServer2008&
    LinuxCentOS5.3
    10.1.23
    Copyright(c) 2009 Firebird日本ユーザー会
    28
    with InnoDB
  • Copyright(c) 2009 Firebird日本ユーザー会
    MySQL5.1vsFirebird2.5SC
    MySQL5.1.40とFirebird2.5の結果を比較
    with InnoDB
    @Windows
    29
    10.1.23
    29
  • Copyright(c) 2009 Firebird日本ユーザー会
    MySQL5.1vsFirebird2.5SC
    MySQL5.1.40とFirebird2.5の結果を比較
    with InnoDB
    @Linux
    30
    10.1.23
    30
  • Copyright(c) 2009 Firebird日本ユーザー会
    MySQL5.1vsFirebird1.5SS
    MySQL5.1.40とFirebird2.5の結果を比較
    with InnoDB
    引き分け
    @Linux
    31
    10.1.23
    31
  • PostgreSQL8.4vsFirebird2.5
    @WindowsServer2008&
    LinuxCentOS5.3
    10.1.23
    Copyright(c) 2009 Firebird日本ユーザー会
    32
  • Copyright(c) 2009 Firebird日本ユーザー会
    PostgreSQL8.4vsFirebird2.5CS
    33
    PostgreSQL8.4.1とFirebird2.5の結果を比較
    @Windows
    10.1.23
    33
  • Copyright(c) 2009 Firebird日本ユーザー会
    PostgreSQL8.4vsFirebird2.5CS
    34
    PostgreSQL8.4.1とFirebird2.5の結果を比較
    @Linux
    10.1.23
    34
  • LinuxでのFirebirdが遅~~い!!
    ファイルシステムが悪いんじゃないか?
    10.1.23
    Copyright(c) 2009 Firebird日本ユーザー会
    35
    @Linux
    35
  • Copyright(c) 2009 Firebird日本ユーザー会
    Firebird2.5SCで検証
    Ext3とXFSでパフォーマンスを測定
    Ext3
    XFS
    @Linux
    36
    10.1.23
    36
  • Copyright(c) 2009 Firebird日本ユーザー会
    Linux+XFSだと劇速! Firebird2.5SC
    調子に乗って500クライアントもテスト!
    XFS
    @Linux
    37
    10.1.23
    37
  • Copyright(c) 2009 Firebird日本ユーザー会
    Linux+XFSでMySQLは
    MySQL5.1.40も500クライアントまでテスト
    XFS
    Firebird
    @Linux
    38
    10.1.23
    38
  • Copyright(c) 2009 Firebird日本ユーザー会
    Linux+XFSでPostgreSQLは
    PostgreSQL8.4.1も500クライアントまでテスト
    XFS
    Firebird
    @Linux
    39
    10.1.23
    39
  • まとめ
     ベンチマークはあくまで目安なので、実際の運用環境を想定して、データベースを選択しよう。
     Firebird2.5は、他のDBを比較しても遜色のない性能を発揮出来そう。
     500クライアント以上の高負荷環境でも通用するぞ~!
    Copyright(c) 2009 Firebird日本ユーザー会
    40
    10.1.23
    40
  • Copyright(c) 2009 Firebird日本ユーザー会
    余談 LostUpdate
    41
    並行するトランザクションで、後から開始したトランザクションが先行するトランザクションのデータを上書きしてしまう現象
    LostUpdateは、MySQLのFalconを除いて、他のRDBMSでは検出することが出来ない。
    MySQLの新ストレージエンジン Falcon徹底リサーチ
    5 トランザクション制御 - MVCCと排他制御松信嘉範2007/03/03
    http://journal.mycom.co.jp/special/2007/falcon/004.html
    Falcon storage engine in depth
    http://dev.mysql.com/tech-resources/articles/falcon-in-depth.html
    10.1.23
    41
  • MySQLにあるthread_stack
    Firebirdのスレッドモデルでは、MySQLのようにスレッドのスタックサイズを変更出来ない。Windwosの既定値は1MBとでかい。このサイズはOSによって結構違う。
    • Windows 1MB
    • CentOS 16KB
    • AIX32bit 96KB
    • FreeBSD 4KB
    • MacOSX 8KB
    10.1.23
    Copyright(c) 2009 Firebird日本ユーザー会
    42
  • threadのスタックサイズを変更
    Firebirdのソース中、ThreadStart.cppにこの辺のことは書いてある。Windows用の_beginthreadex() API の第2パラメータを変更してベンチマークを取ってみた。
    10.1.23
    Copyright(c) 2009 Firebird日本ユーザー会
    43
  • Copyright(c) 2009 Firebird日本ユーザー会
    44
    10.1.23
    44
    Firebirdの本が出ました!
    翔泳社刊
    Firebird徹底入門
  • Presented by Tomneko
    Special thanks to Q-tan