Spider Storage Engine
  Performance Test
Performance degraded as the number of records increased

•   purpose of confirmation
       •   MySQL database sharding via Spider
       •   Confirm that performance issues caused by increasing data are resolved
•   structure
       •   sp2_r2
           –   2 MySQL servers with Spider, 128(total 256) parallel execution,
              2 MySQL servers for real data(innodb)
       •   sp4_r4
           –   4 MySQL servers with Spider, 128(total 512) parallel execution,
              4 MySQL servers for real data(innodb)
       •   r1
           –   1 MySQL server for real data(innodb), 128 parallel execution
•   columns in the table
       •   a:primary key
       •   b:key
       •   c:key
       •   d:no key
•   target number of records per test
       •   insert:6000000
       •   select:600000
       •   update:60000
       •   delete:60000
Insert (Insert Test Time – Lower is better)

                                insert into tbl_a (a,b,c,d) values (?,?,?,?)

                   1200
                   1000
  test time(sec)




                    800                                                        sp2_r2
                    600                                                        sp4_r4
                    400                                                        r1
                    200
                      0
                          600    2400 4200 6000 7800 9600 11400
                                    number of records (x10,000)
Select (Select Test Time – Lower is better)
                                          select a from tbl_a where b = ?

                           2500
                           2000




          test time(sec)
                                                                            sp2_r2
                           1500
                                                                            sp4_r4
                           1000
                                                                            r1
                           500
                             0
                                  600   2400 4200 6000 7800 9600 11400
                                              number of records


                                          select a from tbl_a where a = ?

                           6000
                           5000
          test time(sec)




                           4000                                             sp2_r2
                           3000                                             sp4_r4
                           2000                                             r1
                           1000
                              0
                                  600   2400 4200 6000 7800 9600 11400
                                              number of records
Select (Select Test Time – Lower is better)
                                           select d from tbl_a where a = ?

                           6000
                           5000




          test time(sec)
                           4000                                               sp2_r2
                           3000                                               sp4_r4
                           2000                                               r1
                           1000
                              0
                                  600    2400 4200 6000 7800 9600 11400
                                               number of records


                                           select d from tbl_a where b = ?

                           12000
                           10000
          test time(sec)




                            8000                                              sp2_r2
                            6000                                              sp4_r4
                            4000                                              r1
                            2000
                               0
                                   600     3000      5400    7800     10200
                                                  number of records
Update (Update Test Time – Lower is better)
                                        update tbl_a set d = ? where a = ?

                          700
                          600




         test time(sec)
                          500                                                sp2_r2
                          400
                                                                             sp4_r4
                          300
                          200                                                r1
                          100
                            0
                                600    2400 4200 6000 7800 9600 11400
                                             number of records

                                        update tbl_a set d = ? where b = ?

                          1400
                          1200
         test time(sec)




                          1000                                               sp2_r2
                           800
                                                                             sp4_r4
                           600
                           400                                               r1
                           200
                             0
                                 600   2400 4200 6000 7800 9600 11400
                                              number of records
Update (Update Test Time – Lower is better)
                                        update tbl_a set c = ? where a = ?

                          3000
                          2500




         test time(sec)
                          2000                                               sp2_r2
                          1500                                               sp4_r4
                          1000                                               r1
                           500
                             0
                                 600   2400 4200 6000 7800 9600 11400
                                              number of records


                                        update tbl_a set c = ? where b = ?

                          4000
         test time(sec)




                          3000
                                                                             sp2_r2
                          2000                                               sp4_r4
                                                                             r1
                          1000

                            0
                                 600   2400 4200 6000 7800 9600 11400
                                              number of records
Delete (Delete Test Time – Lower is better)
                                           delete from tbl_a where a = ?

                           3000
                           2500




          test time(sec)
                           2000                                            sp2_r2
                           1500                                            sp4_r4
                           1000                                            r1
                            500
                              0
                                  600   2400 4200 6000 7800 9600 11400
                                              number of records


                                           delete from tbl_a where b = ?

                           3500
                           3000
          test time(sec)




                           2500                                            sp2_r2
                           2000
                                                                           sp4_r4
                           1500
                           1000                                            r1
                            500
                              0
                                  600   2400 4200 6000 7800 9600 11400
                                              number of records

Spider Performance Test(Bench Mark04242009)

  • 1.
    Spider Storage Engine Performance Test
  • 2.
    Performance degraded asthe number of records increased • purpose of confirmation • MySQL database sharding via Spider • Confirm that performance issues caused by increasing data are resolved • structure • sp2_r2 – 2 MySQL servers with Spider, 128(total 256) parallel execution, 2 MySQL servers for real data(innodb) • sp4_r4 – 4 MySQL servers with Spider, 128(total 512) parallel execution, 4 MySQL servers for real data(innodb) • r1 – 1 MySQL server for real data(innodb), 128 parallel execution • columns in the table • a:primary key • b:key • c:key • d:no key • target number of records per test • insert:6000000 • select:600000 • update:60000 • delete:60000
  • 3.
    Insert (Insert TestTime – Lower is better) insert into tbl_a (a,b,c,d) values (?,?,?,?) 1200 1000 test time(sec) 800 sp2_r2 600 sp4_r4 400 r1 200 0 600 2400 4200 6000 7800 9600 11400 number of records (x10,000)
  • 4.
    Select (Select TestTime – Lower is better) select a from tbl_a where b = ? 2500 2000 test time(sec) sp2_r2 1500 sp4_r4 1000 r1 500 0 600 2400 4200 6000 7800 9600 11400 number of records select a from tbl_a where a = ? 6000 5000 test time(sec) 4000 sp2_r2 3000 sp4_r4 2000 r1 1000 0 600 2400 4200 6000 7800 9600 11400 number of records
  • 5.
    Select (Select TestTime – Lower is better) select d from tbl_a where a = ? 6000 5000 test time(sec) 4000 sp2_r2 3000 sp4_r4 2000 r1 1000 0 600 2400 4200 6000 7800 9600 11400 number of records select d from tbl_a where b = ? 12000 10000 test time(sec) 8000 sp2_r2 6000 sp4_r4 4000 r1 2000 0 600 3000 5400 7800 10200 number of records
  • 6.
    Update (Update TestTime – Lower is better) update tbl_a set d = ? where a = ? 700 600 test time(sec) 500 sp2_r2 400 sp4_r4 300 200 r1 100 0 600 2400 4200 6000 7800 9600 11400 number of records update tbl_a set d = ? where b = ? 1400 1200 test time(sec) 1000 sp2_r2 800 sp4_r4 600 400 r1 200 0 600 2400 4200 6000 7800 9600 11400 number of records
  • 7.
    Update (Update TestTime – Lower is better) update tbl_a set c = ? where a = ? 3000 2500 test time(sec) 2000 sp2_r2 1500 sp4_r4 1000 r1 500 0 600 2400 4200 6000 7800 9600 11400 number of records update tbl_a set c = ? where b = ? 4000 test time(sec) 3000 sp2_r2 2000 sp4_r4 r1 1000 0 600 2400 4200 6000 7800 9600 11400 number of records
  • 8.
    Delete (Delete TestTime – Lower is better) delete from tbl_a where a = ? 3000 2500 test time(sec) 2000 sp2_r2 1500 sp4_r4 1000 r1 500 0 600 2400 4200 6000 7800 9600 11400 number of records delete from tbl_a where b = ? 3500 3000 test time(sec) 2500 sp2_r2 2000 sp4_r4 1500 1000 r1 500 0 600 2400 4200 6000 7800 9600 11400 number of records