Successfully reported this slideshow.
Your SlideShare is downloading. ×

Firebird 2.5 Benchmark, by Tsutomu Hayashi (Tomneko)

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 23 Ad

More Related Content

More from Alexey Kovyazin (20)

Advertisement

Recently uploaded (20)

Firebird 2.5 Benchmark, by Tsutomu Hayashi (Tomneko)

  1. 1. FirebirdJapanUsersAssociation TsutomuHayashi Firebird2.5 BenchMarks - Performance VS MySQL / PostgreSQL -
  2. 2. DBBench <ul><li>pgbench(PostgreSQL) port for Firebird/MySQL </li></ul><ul><ul><li>Delphi + dbExpress Mutli Thread impliment </li></ul></ul><ul><ul><li>Change dbExpress drivers enables for other RDBMSs </li></ul></ul><ul><ul><li>Same code/Same binary testing for Firebird/MySQL/PostgreSQL </li></ul></ul><ul><ul><li>Using GUI for easy use </li></ul></ul><ul><ul><li>Most easiest Database Benchmark </li></ul></ul>Copyright(c) 2009 Tsutomu Hayashi All rights reserved.
  3. 3. TPC-B <ul><li>TPC is the benchmark tests definition by &quot; Transaction Processing Performanc Counsil&quot; </li></ul><ul><ul><li>TPC-B is defined at 1990, deplicated 1995 </li></ul></ul><ul><ul><li>This test assume batch operation with many parallel transactions. </li></ul></ul><ul><ul><li>Simulation dealing account between branches in bank. </li></ul></ul>Copyright(c) 2009 Tsutomu Hayashi All rights reserved.
  4. 4. TPC-B <ul><li>Usin 4 tables </li></ul><ul><ul><li>create table branches(bid int not null,bbalance int,filler char(88)); </li></ul></ul><ul><ul><li>create table tellers(tid int not null,bid int,tbalance int,filler char(84)); </li></ul></ul><ul><ul><li>create table accounts(aid int not null,bid int,abalance int,filler char(84)); </li></ul></ul><ul><ul><li>create table history(tid int,bid int,aid int,delta int,mtime timestamp,filler char(22)) </li></ul></ul>Copyright(c) 2008 Tsutomu Hayashi All rights reserved. Copyright(c) 2009 Tsutomu Hayashi All rights reserved.
  5. 5. TPC-B <ul><ul><li>Processing is </li></ul></ul><ul><ul><li>update accounts set abalance = abalance + :delta where aid = :aid; </li></ul></ul><ul><ul><li>select abalance from accounts where aid = :aid; </li></ul></ul><ul><ul><li>update tellers set tbalance = tbalance + :delta where tid = :tid; </li></ul></ul><ul><ul><li>update branches set bbalance = bbalance + :delta where bid = :bid; </li></ul></ul><ul><ul><li>insert into history(tid,bid,aid,delta) values(:tid,:bid,:aid,:delta); </li></ul></ul>Copyright(c) 2008 Tsutomu Hayashi All rights reserved. Copyright(c) 2009 Tsutomu Hayashi All rights reserved.
  6. 6. Scaling Factor <ul><ul><li>Scaling factor is test scale </li></ul></ul><ul><ul><li>Scaling factor affects </li></ul></ul><ul><ul><ul><li>Branch count equals scaling factor </li></ul></ul></ul><ul><ul><ul><li>Teller count is scaling factor * 10 </li></ul></ul></ul><ul><ul><ul><li>Account count is scaling factor * 100,000 </li></ul></ul></ul><ul><ul><li>So I use scaling factor 100 </li></ul></ul><ul><ul><ul><li>Branch is 100, Teller is 1000, Accounts is 10,000,000 </li></ul></ul></ul><ul><ul><ul><li>Firebird database almost 600MB, MySQL is almost 1.2GB </li></ul></ul></ul>Copyright(c) 2008 Tsutomu Hayashi All rights reserved. Copyright(c) 2009 Tsutomu Hayashi All rights reserved.
  7. 7. Copyright(c) 2009 Tsutomu Hayashi All rights reserved. Benchmark Environment HP ML115G5 AMD AthlonTM 1640B ( 2.7GHz ) AMD PhenomTM 9350e ( 2.0GHz ) ECC 512MB DDR2-6400 Non-ECC 4GB DDR2-6400 HDD is standard SATA160GB
  8. 8. Firebird 2.1SS vs Firebird 2.5SS <ul><li>Firebird2.1 vs Firebird2.5 </li></ul>Copyright(c) 2008 Tsutomu Hayashi All rights reserved. @Windows Copyright(c) 2009 Tsutomu Hayashi All rights reserved.
  9. 9. Firebird 2.1CS vs Firebird 2.5CS <ul><li>Firebird2.1 vs Firebird2.5 </li></ul>Copyright(c) 2008 Tsutomu Hayashi All rights reserved. @Windows Copyright(c) 2009 Tsutomu Hayashi All rights reserved.
  10. 10. Firebird 2.1SS vs Firebird 2.5 SC <ul><li>Firebird2.1 vs Firebird2.5 </li></ul>Copyright(c) 2008 Tsutomu Hayashi All rights reserved. @Windows Copyright(c) 2009 Tsutomu Hayashi All rights reserved.
  11. 11. Firebird 2.1SS vs Firebird 2.5SS <ul><li>Firebird2.1 vs Firebird2.5 </li></ul>Copyright(c) 2008 Tsutomu Hayashi All rights reserved. @Linux draw Copyright(c) 2009 Tsutomu Hayashi All rights reserved.
  12. 12. Firebird 2.1CS vs Firebird 2.5CS <ul><li>Firebird2.1 vs Firebird2.5 </li></ul>Copyright(c) 2008 Tsutomu Hayashi All rights reserved. @Linux Copyright(c) 2009 Tsutomu Hayashi All rights reserved.
  13. 13. Firebird 2.1SS vs Firebird 2.5SC <ul><li>Firebird2.1 vs Firebird2.5 </li></ul>Copyright(c) 2008 Tsutomu Hayashi All rights reserved. @Linux Copyright(c) 2009 Tsutomu Hayashi All rights reserved.
  14. 14. MySQL 5.1 vs Firebird 2.5SC <ul><li>MySQL5.1 vs Firebird2.5 </li></ul>Copyright(c) 2008 Tsutomu Hayashi All rights reserved. @Windows Copyright(c) 2009 Tsutomu Hayashi All rights reserved.
  15. 15. MySQL 5.1 vs Firebird 2.5SC <ul><li>MySQL5.1 vs Firebird2.5 </li></ul>Copyright(c) 2008 Tsutomu Hayashi All rights reserved. @Linux Copyright(c) 2009 Tsutomu Hayashi All rights reserved.
  16. 16. MySQL 5.1 vs Firebird 1.5SS <ul><li>MySQL5.1 vs Firebird2.5 </li></ul>Copyright(c) 2008 Tsutomu Hayashi All rights reserved. @Linux draw Copyright(c) 2009 Tsutomu Hayashi All rights reserved.
  17. 17. PostgreSQL 8.4.1 vs Firebird 2.5CS <ul><li>PostgreSQL8.4 vs Firebird2.5 </li></ul>Copyright(c) 2008 Tsutomu Hayashi All rights reserved. @Windows Copyright(c) 2009 Tsutomu Hayashi All rights reserved.
  18. 18. PostgreSQL 8.4.1 vs Firebird 2.5CS <ul><li>PostgreSQL8.4 vs Firebird2.5 </li></ul>Copyright(c) 2008 Tsutomu Hayashi All rights reserved. @Linux Copyright(c) 2009 Tsutomu Hayashi All rights reserved.
  19. 19. on Linux, Firebird is very slow!! Copyright(c) 2008 Tsutomu Hayashi All rights reserved. @Linux Copyright(c) 2009 Tsutomu Hayashi All rights reserved.
  20. 20. Ext3 vs XFS <ul><li>I assume Filesystem? Using Fire bird2.5SC </li></ul>Copyright(c) 2008 Tsutomu Hayashi All rights reserved. @Linux Copyright(c) 2009 Tsutomu Hayashi All rights reserved.
  21. 21. Linux+XFS is very Fast! <ul><li>Test with XFS for many clients </li></ul>Copyright(c) 2008 Tsutomu Hayashi All rights reserved. @Linux Copyright(c) 2009 Tsutomu Hayashi All rights reserved.
  22. 22. Results <ul><li>  Benchmarks are rough estimation at all. </li></ul><ul><li>  Firebird2.5 is very fast than other RDBMSs. </li></ul><ul><li>  Normaly running many clients over 500 . </li></ul>Copyright(c) 2009 Tsutomu Hayashi All rights reserved.
  23. 23. Coming Soon <ul><li>Japanese publisher &quot;Shoei-sya&quot; will publish new Firebird book in Japan at December 2009. </li></ul>Copyright(c) 2009 Tsutomu Hayashi All rights reserved.

Editor's Notes

  • < alter character set のサンプル> create database &apos;people.fdb&apos; default character set win1252; alter character set win1252 set default collation win_ptbr; create table person ( id integer, name varchar(50) /* will use the database default character set and the win1252 default collation */ ); insert into person values (1, &apos;adriano&apos;); insert into person values (2, &apos;ADRIANO&apos;); /* will retrieve both records because win_ptbr is case insensitive */ select * from person where name like &apos;A%&apos;;
  • (1) begin; (2) update accounts set abalance = abalance + :delta where aid = :aid;     ここで, :delta は 1 から 1000 までの値を取る乱数, :aid は 1 から 100000 まで     の値を取る乱数です.以下,乱数の値はそれぞれこのトランザクションの     中では同じ値を使います. (3) select abalance from accounts where aid = :aid;     ここでは 1 件だけ検索されます. (4) update tellers set tbalance = tbalance + :delta where tid = :tid;     ここで :tid は 1 から 10 の間の値をとる乱数です. (5) update branches set bbalance = bbalance + :delta where bid = :bid;     ここで :bid は 1 から [ スケリングファクター ] の間の値を取る乱数です. (6) insert into history(tid,bid,aid,delta) values(:tid,:bid,:aid,:delta); (7) end;
  • (1) begin; (2) update accounts set abalance = abalance + :delta where aid = :aid;     ここで, :delta は 1 から 1000 までの値を取る乱数, :aid は 1 から 100000 まで     の値を取る乱数です.以下,乱数の値はそれぞれこのトランザクションの     中では同じ値を使います. (3) select abalance from accounts where aid = :aid;     ここでは 1 件だけ検索されます. (4) update tellers set tbalance = tbalance + :delta where tid = :tid;     ここで :tid は 1 から 10 の間の値をとる乱数です. (5) update branches set bbalance = bbalance + :delta where bid = :bid;     ここで :bid は 1 から [ スケリングファクター ] の間の値を取る乱数です. (6) insert into history(tid,bid,aid,delta) values(:tid,:bid,:aid,:delta); (7) end;
  • ・本体は NTT-X ストアで 14,800 円。もう終わっちゃったけど・・・ ・ PhenomⅡ にしたかったけど、 AM2+ までの対応なので Phonem にしました。 ・メモリは ECC じゃないけど、 4GB は最低限欲しいですよね。
  • CS っていうのは、クラシックサーバーです。カーネル・サンダースじゃないですよ。ましてやサンダース軍曹じゃないです。
  • 500 クライアントになっても全然速度が落ちないよ・・・、これはすごい!

×