SlideShare ist ein Scribd-Unternehmen logo
1 von 48
Downloaden Sie, um offline zu lesen
MySQL Cluster : Delivering Breakthrough Performance
26th July 2012

 Andrew Morgan                       Mat Keep
 Senior Product Manager – MySQL HA   Senior Product Manager – MySQL HA
 andrew.morgan@oracle.com            mat.keep@oracle.com
 clusterdb.com
The presentation is intended to outline our general
            product direction. It is intended for information
            purposes only, and may not be incorporated into any
            contract. It is not a commitment to deliver any
            material, code, or functionality, and should not be
            relied upon in making purchasing decisions.
            The development, release, and timing of any
            features or functionality described for Oracle’s
            products remains at the sole discretion of Oracle.




Copyright 2012 Oracle Corporation - 26th July 2012                2
Session Agenda
    •  Introduction to MySQL Cluster
    •  Where does MySQL Cluster fit?
    •  Benchmarks
    •  WHILE (cluster.measurePerformance() < target) {
           cluster.optimize();
       }

    •  Boosting performance
    •  Scaling out
    •  Further resources

Copyright 2012 Oracle Corporation - 26th July 2012       3
MySQL Cluster – Users & Applications
                Extreme Scalability, Availability and Affordability

 •  Web
          •     High volume OLTP
          •     eCommerce
          •     On-Line Gaming
          •     Digital Marketing
          •     User Profile Management
          •     Session Management & Caching
          •     Content Management

 •  Telecoms
          •     Service Delivery Platforms
          •     VAS: VoIP, IPTV & VoD
          •     Mobile Content Delivery
          •     Mobile Payments
          •     LTE Access                                      http://www.mysql.com/customers/cluster/



Copyright 2012 Oracle Corporation - 26th July 2012                                                  4
MySQL Cluster Architecture



                                                     JPA            REST
                                                           Application Nodes



                                          Node Group 1                         Node Group 2

                                                     F1                                  F2
                                           Node 1




                                                                               Node 3
             Cluster                                                                          Cluster
             Mgmt                                    F3                                  F4   Mgmt


                                                     F3                                  F4




                                                                               Node 4
                                           Node 2




                                                     F1                                  F2
                                                               Data Nodes




Copyright 2012 Oracle Corporation - 26th July 2012                                                5
When to Consider MySQL Cluster
  l    What are the consequences of downtime or failing to meet
        performance requirements?
  l    How much effort and $ is spent in developing and managing HA in
        your applications?
  l    Are you considering sharding your database to scale write
        performance? How does that impact your application and
        developers?
  l    Do your services need to be real-time?
  l    Will your services have unpredictable scalability demands,
        especially for writes ?
  l    Do you want the flexibility to manage your data
        with more than just SQL ?




Copyright 2012 Oracle Corporation - 26th July 2012                        6
Where would I not Use MySQL Cluster?
    •  “Hot” data sets >3TB
          •  Replicate cold data to InnoDB
    •  Long running transactions
    •  Large rows, without using BLOBs
    •  Foreign Keys
          •  Check out MySQL Cluster 7.3 Early Access: http://labs.mysql.com/
    •  Many full table scans
    •  Geo-Spatial indexes
    •  In these scenarios; InnoDB storage engine would be the
       right choice

                                    MySQL Cluster Evaluation Guide
        http://mysql.com/why-mysql/white-papers/mysql_cluster_eval_guide.php


Copyright 2012 Oracle Corporation - 26th July 2012                              7
General Design Considerations

           •  MySQL Cluster is designed for
                 –  Short transactions
                 –  Many parallel transactions
           •  Utilize Simple access patterns to fetch data
                 –  Use efficient scans and batching interfaces
           •  Analyze what your most typical use cases are
                 –  optimize for those


                                    Overall design goal
                             Minimize network roundtrips for your
                                  most important requests!

Copyright 2012 Oracle Corporation - 26th July 2012                  8
Servicing the Most Performance-Intensive Workloads




Copyright 2012 Oracle Corporation - 26th July 2012                    9
writes




                 Servicing the Most Performance-Intensive Workloads




Copyright 2012 Oracle Corporation - 26th July 2012                    10
Comparing MySQL Cluster Performance
                 8x Higher Performance per Node
                                                                    20

                                                                    18



                                      Reads per Second (Millions)
                                                                    16

                                                                    14

                                                                    12

                                                                    10

                                                                     8

                                                                     6

                                                                     4

                                                                     2

                                                                     0
                                                                         MySQL Cluster 7.1   MySQL Cluster 7.2

                •  1 Billion+ Reads per Minute, 8 node Intel Xeon cluster
                •  Multi-Threaded Data Node Extensions
                •  NoSQL C++ API, flexaSynch benchmark


Copyright 2012 Oracle Corporation - 26th July 2012                                                               11
1.2 Billion UPDATEs per Minute
                                                   25

                  Millions of UPDATEs per Second

                                                   20




                                                   15




                                                   10




                                                    5




                                                    0
                                                        2    4   6   8   10   12   14   16   18   20   22   24   26   28   30
                                                                          MySQL Cluster Data Nodes


              •  30 x Intel E5-2600 Intel Servers
              •  NoSQL C++ API, flexaSynch benchmark
              •  ACID Transactions, with Synchronous Replication


Copyright 2012 Oracle Corporation - 26th July 2012                                                                              12
WHILE (cluster.measurePerformance() < target)

           •  Don’t optimize for the sake of it
                 •  Wastes effort
                 •  Introduces unnecessary compromises/complications
           •  Forget about database benchmarks
                 •  You care about the end-to-end performance of your
                    application on your database
                 •  If possible drive your application to drive the database
           •  Measurements need to be based on
              representative traffic
           •  Measurements need to be repeatable
                 •  Easily see impact of each optimization

Copyright 2012 Oracle Corporation - 26th July 2012                        13
Where has the time gone?
           •  Enable the slow query log
                    –    set global slow_query_log=1;
                    –    set global long_query_time=3; //3 seconds
                    –    set global log_queries_not_using_indexes=1;
                    –    Slow queries will be written in the slow query log:
                         mysql> show global variables like 'slow_query_log_file';
                         +---------------------+------------------------------+
                         | Variable_name       | Value                        |
                         +---------------------+------------------------------+
                         | slow_query_log_file | /data1/mysql/mysqld-slow.log |
                         +---------------------+------------------------------+

           •  Queries will be written in plain text




Copyright 2012 Oracle Corporation - 26th July 2012                                  14
Query Analyzer in MySQL Enterprise
               Monitor (take the easy option!)




Copyright 2012 Oracle Corporation - 26th July 2012   15
Simple database traffic generation
           create.sql:
           CREATE TABLE sub_name (sub_id INT NOT NULL PRIMARY KEY, name
             VARCHAR(30)) engine=ndb;
           CREATE TABLE sub_age (sub_id INT NOT NULL PRIMARY KEY, age INT)
             engine=ndb;
           INSERT INTO sub_name VALUES (1,'Bill'),(2,'Fred'),(3,'Bill'),
             (4,'Jane'),(5,'Andrew'),(6,'Anne'),(7,'Juliette'),(8,'Awen'),
             (9,'Leo'),(10,'Bill');
           INSERT INTO sub_age VALUES (1,40),(2,23),(3,33),(4,19),(5,21),
             (6,50),(7,31),(8,65),(9,18),(10,101);


           query.sql:
           SELECT sub_age.age FROM sub_name, sub_age WHERE
             sub_name.name='Bill' AND sub_name.sub_id=sub_age.sub_id;




Copyright 2012 Oracle Corporation - 26th July 2012                       16
Simple database traffic generation
     shell> mysqlslap --concurrency=5 --
      iterations=100 --query=query.sql --
      create=create.sql
     Benchmark
          Average number of                          seconds   to run all queries: 0.132 seconds
          Minimum number of                          seconds   to run all queries: 0.037 seconds
          Maximum number of                          seconds   to run all queries: 0.268 seconds
          Number of clients                          running   queries: 5
          Average number of                          queries   per client: 1




Copyright 2012 Oracle Corporation - 26th July 2012                                          17
What on Earth is it doing?

           EXPLAIN is your friend


           mysql> EXPLAIN <query>;

           mysql> EXPLAN PARTITIONS <query>;

           mysql> EXPLAIN EXTENDED <query>;
           mysql> SHOW WARNINGS;


Copyright 2012 Oracle Corporation - 26th July 2012   18
Boosting Performance


       • ANALYZE TABLE                               •  Connection pools
       •  Access patterns                            •  Multi-threaded data
       •  AQL (fast JOINs)                              nodes
       •  Distribution aware                         •  NoSQL APIs
       •  Batching                                   •  Hardware
       •  Schema                                     •  More tips




Copyright 2012 Oracle Corporation - 26th July 2012                            19
Before you do anything else, ANALYZE!

       •  New for MySQL Cluster 7.2
       •  Lets the MySQL optimizer figure out how to best use
          indexes etc.
       •  Instantly speed up queries by many times

       mysql> ANALYZE TABLE <tab-name>;

       •  Repeat after changing schema, adding/removing
          indexes or making major data changes
       •  Only needs running on one mysqld in the cluster


Copyright 2012 Oracle Corporation - 26th July 2012              20
Access patterns

       •  Primary key reads/writes -> O(1)
             •  Independent of database size and number of nodes
       •  Index searched -> O(log n)
             •  n = number of tuples
       •  BLOBs are stored in second table -> take longer to
          access
       •  JOINs massively faster in MySQL Cluster 7.3
       •  Partition pruning
             •  By allowing a query to be satisfied with a single data node,
                reduce resource consumption -> greater throughput
             •  If result sets not large, will also reduce latency




Copyright 2012 Oracle Corporation - 26th July 2012                             21
Adaptive Query Localization
           Scaling Distributed Joins                                                    70x
                                                                                         More
                                                                                     Performance


                                                            •  Perform Complex Queries
      mysqld                                                   across Shards
                                                              •  JOINs pushed down to data nodes
                        A                      Data Nodes
                                                              •  Executed in parallel
                        Q                                     •  Returns single result set to MySQL
                        L
                                                            •  Opens Up New Use-Cases
                                                              •  Real-time analytics
                                                              •  Recommendations engines
      mysqld
                                                              •  Analyze click-streams

                                               Data Nodes        DON’T COMPROMISE
                                                            FUNCTIONALITY TO SCALE-OUT !!


Copyright 2012 Oracle Corporation - 26th July 2012                                               22
MySQL Cluster 7.2 AQL Test Query
           Web-Based Content Management System




                                                        MySQL
                                                        Server




                                                      Data    Data
                                                     Node1   Node2




Copyright 2012 Oracle Corporation - 26th July 2012               23
Web-Based CMS
                                  Query Execution Time Seconds
                                                                                         70x
                                                                                          More
   100
                                                                                      Performance
    90

    80

    70
                                                     87.23 seconds
    60

    50

    40

    30

    20

    10                                                                           1.26 seconds
     0
                            MySQL Cluster 7.1                MySQL Cluster 7.2



Must Analyze tables for best results
mysql> ANALYZE TABLE <tab-name>;


Copyright 2012 Oracle Corporation - 26th July 2012                                              24
Did I mention ANALYZE TABLE?




Copyright 2012 Oracle Corporation - 26th July 2012   25
AQL – How to Use it
•  Activated when ndb_join_pushdown is on (default)
•  Rules for a Join to be pushed down:
     1.      Joined columns use identical types
     2.      No reference to BLOB or TEXT columns
     3.      No explicit lock
     4.      Child tables in the Join must be accessed using one of the ref, eq_ref, or
             const
     5.      Tables not explicitly partitioned by [LINEAR] HASH, LIST, or RANGE
     6.      Query plan doesn’t select ‘Using join buffer'
     7.      If root of Join is an eq_ref or const, child tables must be joined by eq_ref
•  Run ANALYZE TABLE <tab-name> on each table once
•  Use EXPLAIN to see what components are being pushed down:
    •  Extra: Child of 'd' in pushed join@1
    •  EXPLAIN EXTENDED <query>;SHOW WARNINGS;


Copyright 2012 Oracle Corporation - 26th July 2012                                   26
Distribution Aware Apps
SELECT SUM(population) FROM towns                      •  Partition selected using hash on
WHERE country=“UK”;
                                                          Partition Key
                       Partition Key

             Primary Key
                                                          •  Primary Key by default
   town                country            population      •  User can override in table definition
   Maidenhead          UK                 78000        •  MySQL Server (or NDB API) will
   Paris               France             2193031         attempt to send transaction to the
   Boston              UK                 58124
                                                          correct data node
   Boston              USA                617594
                                                          •  If all data for the transaction are in
SELECT SUM(population) FROM towns                            the same partition, less messaging -
WHERE town=“Boston”;                                         > faster
   Partition Key                                       •  Aim to have all rows for high-running
             Primary Key                                  queries in same partition
   town                country            population
   Maidenhead          UK                 78000
   Paris               France             2193031
   Boston              UK                 58124
   Boston              USA                617594




Copyright 2012 Oracle Corporation - 26th July 2012                                            27
Distribution Aware – Multiple Tables

      Partition Key

      Primary Key
      sub_id             age        gender               •  Extend partition awareness over
      19724              25         male                    multiple tables
      84539              43         female
                                                         •  Same rule – aim to have all data for
      19724              16         female
                                                            instance of high running
      74574              21         female
                                                            transactions in the same partition
                         Partition Key

                Primary Key                              ALTER TABLE service_ids
      service            sub_id               svc_id      PARTITION BY KEY(sub_id);
      twitter            19724                76325732
      twitter            84539                67324782
      facebook           19724                83753984   EXPLAIN PARTITIONS <query>;
      facebook           73642                87324793




Copyright 2012 Oracle Corporation - 26th July 2012                                          28
Validate if “partition pruning” is working
       mysql> SHOW GLOBAL STATUS LIKE 'ndb_pruned_scan_count';
       +-----------------------+-------+
       | Variable_name         | Value |
       +-----------------------+-------+
       | Ndb_pruned_scan_count | 12    |
       +-----------------------+-------+
       mysql> SELECT * FROM services WHERE sub_id=1;
       +--------+--------------+--------------+
       | sub_id | service_name | service_parm |
       +--------+--------------+--------------+
       |      1 | IM           |          878 |
       |      1 | ssh          |          666 |
       |      1 | Video        |          654 |
       +--------+--------------+--------------+

       mysql> SHOW GLOBAL STATUS LIKE 'ndb_pruned_scan_count';
       +-----------------------+-------+
       | Variable_name         | Value |
       +-----------------------+-------+
       | Ndb_pruned_scan_count | 13    |
       +-----------------------+-------+


Copyright 2012 Oracle Corporation - 26th July 2012               29
Batching
•  MySQL Cluster allows batching on
      •  Inserts, index scans (when not part of a JOIN), PK reads, PK deletes,
         and PK (most) updates.
      •  Batching means that one network round trip is used to read/modify a
         number of records → less ping-pong!
      •  If you can batch - do it!
•  Example – Insert 1M records
      •  No batching:
          •  INSERT INTO t1(data) VALUES (<data>);
          •  765 seconds to insert 1M records
      •  Batching (batches of 16):
          •  INSERT INTO t1(<columns>) VALUES (<data>),
             (<data>)...
          •  50 seconds to insert 1M records


Copyright 2012 Oracle Corporation - 26th July 2012                          30
Batching, more examples
SELECT * FROM t1 WHERE userid=1 AND serviceid
 IN (1,2,3,4,5,7,8,9,10);

SET transaction_allow_batching=1; //must be set
 on the connection
BEGIN;
      INSERT              INTO t1 ....;
      INSERT              INTO t2 ....;
      INSERT              INTO t3 ....;
      INSERT              INTO t4 ....;
      DELETE              FROM t5 ....;
      UPDATE              t1 SET value='new value' WHERE id=1;
COMMIT;

Copyright 2012 Oracle Corporation - 26th July 2012               31
Optimizing schema - denormalization

                                                     userid	
   voip_data	
     userid	
   bb_data	
  
SELECT * FROM bb,voip WHERE                            1	
       <data>	
         1	
       <data>	
  
                                                       2	
       <data>	
         2	
       <data>	
  
 bb.userid=voip.userid AND                             3	
       <data>	
         3	
       <data>	
  
 bb.userid=1;                                          4	
       <data>	
         4	
       <data>	
  
                                                          voip                          bb



                                                            userid	
   voip_data	
   bb_data	
  
                                                              1	
       <data>	
   <data>	
  
mysql> SELECT * FROM                                          2	
       <data>	
   <data>	
  
  voip_bb WHERE userid=1;                                     3	
       <data>	
   <data>	
  
                                                              4	
       <data>	
   <data>	
  
1.7x improvement
                                                                       voip_bb




Copyright 2012 Oracle Corporation - 26th July 2012                                                 32
Connection Pools
                                                                                  •  Network hops increase latency (e.g.
                                                                                     Compared with InnoDB read of cached
                                                                                     data)
 App thread

               App thread

                            App thread




                                         App thread

                                                        App thread

                                                                     App thread
                                                                                    •  Increase throughput by sending in lots of
                                                                                       parallel operations
                                                                                    •  Multiple client connections (sessions) to each
                                                                                       MySQL Server
              mysqld                                  mysqld
                                                                                    •  Multiple MySQL Servers
              NDB API                                 NDB API
                                                                                  •  Connection pooling between MySQL
                                                                                     Servers and data nodes
                                                                                    •  Set ndb-cluster-connection-pool > 1
                                                                                       in my.cnf
                                                                                    •  Ensure enough [api] sections in
Data Nodes
                                                                                       config.ini
                                                                                    •  Don’t assign hostnames!


Copyright 2012 Oracle Corporation - 26th July 2012                                                                              33
Multi-threaded data nodes
                                                                             •  Scaling out on commodity
                                                                                hardware is the standard
                                        Application Nodes                       way to increase
                                                                                performance
                                                                                •  Add more data nodes and




                                                              Node 3
                                                                                   API nodes as required
                                                                             •  MySQL Cluster 7.2
Node 1




                                                                                increases the ability to also
                                                                                scale-up each data node
                                                                                •  Increases maximum
                                                                                   number of utilised threads
                                                                                   from 8 to 59
                               Node 2




                                                              Node 4




                         Node Group 1                         Node Group 2




         Copyright 2012 Oracle Corporation - 26th July 2012                                                34
Multi-threaded data nodes

                                                                                     •  Threads:
                                                                                         •  ldm: 1,2,4,8 or 12 Local
                                                 Application Nodes
                                                                                            Query Handler threads
                                                                                         •  tc: typically ldm/4
                                                                                            Transaction
                                                                                            Coordinator threads
                                                                                         •  send: ~2-3 Send
Data Node 1




                 recv                                              send    main             threads
                                                                                         •  recv: ~2-4 Receive
                                                                                            threads
                                                                                         •  main: 1 Main thread
                                                                                         •  rep: 1 Replication
                    tc                                             ldm    rep   io          thread
                                                                                         •  io: 1 I/O thread



              Copyright 2012 Oracle Corporation - 26th July 2012                                                35
Multi-threaded data nodes

       •  Applies to ntbdmtd only
       •  Configure through either:
             •  MaxNoOfExecutionThreads
                 •  Single value for number of threads
                 •  System will allocate these threads to blocks in a reasonable
                    way
             •  ThreadConfig
                 •  Specify explicitly how many threads for each block type
                 •  Lock threads to CPUs for further performance gains
                 •  Threadconfig=main={cpubind=0},ldm=
                    {count=4,cpubind=1,2,5,6},io=
                    {count=2,cpubind=3,4}


Copyright 2012 Oracle Corporation - 26th July 2012                                 36
Multi-threaded data nodes – starting
           point for ThreadConfig


                                   24 threads 32 threads 40 threads 48 thread
                      ldm                     8      12      16        16
                           tc                 4      6       8         12
                     recv                     3      3       4          5
                    send                      3      3       4          4
                        rep                   1      1       1          1


        Note that some threads are left for other data node
                    blocks as well as the OS

Copyright 2012 Oracle Corporation - 26th July 2012                              37
NoSQL APIs

                                                                          Clients


                                                                              JDBC / ODBC
                                                                               PHP / PERL
               Native            memcached           HTTP/REST                Python / Ruby


                                                             NDB API



                                                             Data Nodes

      Mix                            •  SQL: Complex, relational queries
       &                             •  Memcached: Key-Value web services
     Match                           •  Java: Enterprise Apps
                                     •  NDB API: Real-time services


Copyright 2012 Oracle Corporation - 26th July 2012                                            38
Hardware

       •  High bandwidth, low latency network
             •  Turn off firewalls if you can
       •  Use multiple disks
             •  Checkpoints
             •  Log files
             •  Table spaces
       •  SSDs
             •  Biggest benefit for Table spaces
       •  Refer to MySQL Cluster Evaluation Guide for
          more details


Copyright 2012 Oracle Corporation - 26th July 2012      39
MySQL Query Cache
          •  Don't enable the Query Cache!
                •  It is very expensive to invalidate over multiple MySQL servers
                •  A write on one server will force the others to purge their cache.
          •  If you have tables that are read only (or change very
             seldom):
                my.cnf:
                  query_cache_size=1000000
                  query_cache_type=2 (ON DEMAND)

                mysql> SELECT SQL_CACHE <cols> .. FROM table;

                    •  SQL_CACHE tells (demands) MySQL to cache the results
                       from this SELECT
                •  This can be good for STATIC data



Copyright 2012 Oracle Corporation - 26th July 2012                                     40
Non-Durable tables

       •         Some types of tables account for a lot of WRITEs, but do not
                 need to be recovered (e.g, Session tables)
       •         Unnecessary to persist such tables - no REDO LOGs or
                 CHECKPOINTs
       •         Create these tables as 'NO LOGGING' tables:

                          mysql> set ndb_table_no_logging=1;

                          mysql> create table session_table
                          (..) engine=ndb;

                          mysql> set ndb_table_no_logging=0;

       •          After system restart table will be there, but empty!


Copyright 2012 Oracle Corporation - 26th July 2012                              41
More optimisation tips
       •  When using auto-increment columns, increase ndb-
          autoincrement-prefetch-sz
       •  Set RedoBuffer=32-64M
       •  Disk-based tables:
             •  Increase UNDO_BUFFER for write-intensive apps
             •  Increase DiskIOThreadPool
             •  Increase DiskPageBufferMemory for better caching in the data
                nodes; Monitor effectiveness using NDBINFO / MEM
       • FragmentLogFileSize=256M
       • NoOfFragmentLogFiles= 6 x DataMemory (in
          MB) / (4x 256MB)
       •  Use OPTIMIZE TABLE and perform rolling restarts if
          memory fragmentation is an issue

Copyright 2012 Oracle Corporation - 26th July 2012                         42
Scaling out with MySQL Cluster Manager
                                         client




                                                       mysqld         mysqld

                                                      ndb_mgmd       ndb_mgmd

                                                        agent          agent


                                                     192.168.0.10   192.168.0.11


                   ndbd                                 ndbd

                   ndbd                                 ndbd

                   agent                                agent


            192.168.0.12                         192.168.0.13


Copyright 2012 Oracle Corporation - 26th July 2012                                 43
Scaling out with MySQL Cluster Manager
                                         client



                                                       mysqld         mysqld

                                                       mysqld         mysqld

                                                      ndb_mgmd       ndb_mgmd

                                                        agent          agent


                                                     192.168.0.10   192.168.0.11


                   ndbd                                 ndbd           ndbd           ndbd

                   ndbd                                 ndbd           ndbd           ndbd

                   agent                                agent          agent          agent


            192.168.0.12                         192.168.0.13       192.168.0.14   192.168.0.15


Copyright 2012 Oracle Corporation - 26th July 2012                                                44
Scaling out with MySQL Cluster Manager
mcm> add hosts --hosts=192.168.0.14,192.168.0.15
 mysite;
mcm> add package --basedir=/usr/local/mysql_7_0_9
 --hosts=192.168.0.14,192.168.0.15 7.0.9;
mcm> add process --
 processhosts=mysqld@192.168.0.10,mysqld@192.168.0.
 11,ndbd@192.168.0.14,ndbd@192.168.0.15,ndbd@192.16
 8.0.14,ndbd@192.168.0.15 -s port:mysqld:
 52=3307,port:mysqld:53=3307 mycluster;
mcm> start process --added mycluster;
mysql> ALTER ONLINE TABLE <table-name> REORGANIZE
 PARTITION;
mysql> OPTIMIZE TABLE <table-name>;


Copyright 2012 Oracle Corporation - 26th July 2012   45
Download MySQL Cluster Today!




http://www.mysql.com/downloads/cluster/#downloads
Further resources

•  MySQL Cluster Performance white paper:
   http://www.mysql.com/why-mysql/white-papers/
   mysql_wp_cluster_performance.php
•  MySQL Cluster Forum:
   http://forums.mysql.com/list.php?25
•  MySQL Cluster Evaluation guide:
   http://www.mysql.com/why-mysql/white-papers/
   mysql_cluster_eval_guide.php
•  MySQL Cluster in Web-Scale Architectures:
   http://www.mysql.com/why-mysql/white-papers/
   mysql_cluster_eval_guide.php
MySQL Cluster performance best practices

Weitere ähnliche Inhalte

Was ist angesagt?

MySQL Group Replication - Ready For Production? (2018-04)
MySQL Group Replication - Ready For Production? (2018-04)MySQL Group Replication - Ready For Production? (2018-04)
MySQL Group Replication - Ready For Production? (2018-04)Kenny Gryp
 
MySQL Database Architectures - InnoDB ReplicaSet & Cluster
MySQL Database Architectures - InnoDB ReplicaSet & ClusterMySQL Database Architectures - InnoDB ReplicaSet & Cluster
MySQL Database Architectures - InnoDB ReplicaSet & ClusterKenny Gryp
 
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)NTT DATA Technology & Innovation
 
The Oracle RAC Family of Solutions - Presentation
The Oracle RAC Family of Solutions - PresentationThe Oracle RAC Family of Solutions - Presentation
The Oracle RAC Family of Solutions - PresentationMarkus Michalewicz
 
Oracle RAC Virtualized - In VMs, in Containers, On-premises, and in the Cloud
Oracle RAC Virtualized - In VMs, in Containers, On-premises, and in the CloudOracle RAC Virtualized - In VMs, in Containers, On-premises, and in the Cloud
Oracle RAC Virtualized - In VMs, in Containers, On-premises, and in the CloudMarkus Michalewicz
 
Tanel Poder - Performance stories from Exadata Migrations
Tanel Poder - Performance stories from Exadata MigrationsTanel Poder - Performance stories from Exadata Migrations
Tanel Poder - Performance stories from Exadata MigrationsTanel Poder
 
Oracle RAC features on Exadata
Oracle RAC features on ExadataOracle RAC features on Exadata
Oracle RAC features on ExadataAnil Nair
 
RivieraJUG - MySQL Indexes and Histograms
RivieraJUG - MySQL Indexes and HistogramsRivieraJUG - MySQL Indexes and Histograms
RivieraJUG - MySQL Indexes and HistogramsFrederic Descamps
 
MySQL InnoDB Cluster - Advanced Configuration & Operations
MySQL InnoDB Cluster - Advanced Configuration & OperationsMySQL InnoDB Cluster - Advanced Configuration & Operations
MySQL InnoDB Cluster - Advanced Configuration & OperationsFrederic Descamps
 
An Apache Hive Based Data Warehouse
An Apache Hive Based Data WarehouseAn Apache Hive Based Data Warehouse
An Apache Hive Based Data WarehouseDataWorks Summit
 
MySQLerの7つ道具 plus
MySQLerの7つ道具 plusMySQLerの7つ道具 plus
MySQLerの7つ道具 plusyoku0825
 
Oracle X$TRACE, Exotic Wait Event Types and Background Process Communication
Oracle X$TRACE, Exotic Wait Event Types and Background Process CommunicationOracle X$TRACE, Exotic Wait Event Types and Background Process Communication
Oracle X$TRACE, Exotic Wait Event Types and Background Process CommunicationTanel Poder
 
Everyday I'm Shuffling - Tips for Writing Better Spark Programs, Strata San J...
Everyday I'm Shuffling - Tips for Writing Better Spark Programs, Strata San J...Everyday I'm Shuffling - Tips for Writing Better Spark Programs, Strata San J...
Everyday I'm Shuffling - Tips for Writing Better Spark Programs, Strata San J...Databricks
 
MySQL InnoDB Cluster - New Features in 8.0 Releases - Best Practices
MySQL InnoDB Cluster - New Features in 8.0 Releases - Best PracticesMySQL InnoDB Cluster - New Features in 8.0 Releases - Best Practices
MySQL InnoDB Cluster - New Features in 8.0 Releases - Best PracticesKenny Gryp
 

Was ist angesagt? (20)

MySQL Group Replication - Ready For Production? (2018-04)
MySQL Group Replication - Ready For Production? (2018-04)MySQL Group Replication - Ready For Production? (2018-04)
MySQL Group Replication - Ready For Production? (2018-04)
 
InnoDb Vs NDB Cluster
InnoDb Vs NDB ClusterInnoDb Vs NDB Cluster
InnoDb Vs NDB Cluster
 
Long live to CMAN!
Long live to CMAN!Long live to CMAN!
Long live to CMAN!
 
Crunchy containers
Crunchy containersCrunchy containers
Crunchy containers
 
MySQL Database Architectures - InnoDB ReplicaSet & Cluster
MySQL Database Architectures - InnoDB ReplicaSet & ClusterMySQL Database Architectures - InnoDB ReplicaSet & Cluster
MySQL Database Architectures - InnoDB ReplicaSet & Cluster
 
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
 
The Oracle RAC Family of Solutions - Presentation
The Oracle RAC Family of Solutions - PresentationThe Oracle RAC Family of Solutions - Presentation
The Oracle RAC Family of Solutions - Presentation
 
Oracle RAC Virtualized - In VMs, in Containers, On-premises, and in the Cloud
Oracle RAC Virtualized - In VMs, in Containers, On-premises, and in the CloudOracle RAC Virtualized - In VMs, in Containers, On-premises, and in the Cloud
Oracle RAC Virtualized - In VMs, in Containers, On-premises, and in the Cloud
 
Tanel Poder - Performance stories from Exadata Migrations
Tanel Poder - Performance stories from Exadata MigrationsTanel Poder - Performance stories from Exadata Migrations
Tanel Poder - Performance stories from Exadata Migrations
 
Oracle RAC features on Exadata
Oracle RAC features on ExadataOracle RAC features on Exadata
Oracle RAC features on Exadata
 
RivieraJUG - MySQL Indexes and Histograms
RivieraJUG - MySQL Indexes and HistogramsRivieraJUG - MySQL Indexes and Histograms
RivieraJUG - MySQL Indexes and Histograms
 
Oracle RAC 12c Overview
Oracle RAC 12c OverviewOracle RAC 12c Overview
Oracle RAC 12c Overview
 
MySQL InnoDB Cluster - Advanced Configuration & Operations
MySQL InnoDB Cluster - Advanced Configuration & OperationsMySQL InnoDB Cluster - Advanced Configuration & Operations
MySQL InnoDB Cluster - Advanced Configuration & Operations
 
An Apache Hive Based Data Warehouse
An Apache Hive Based Data WarehouseAn Apache Hive Based Data Warehouse
An Apache Hive Based Data Warehouse
 
MySQLerの7つ道具 plus
MySQLerの7つ道具 plusMySQLerの7つ道具 plus
MySQLerの7つ道具 plus
 
Oracle X$TRACE, Exotic Wait Event Types and Background Process Communication
Oracle X$TRACE, Exotic Wait Event Types and Background Process CommunicationOracle X$TRACE, Exotic Wait Event Types and Background Process Communication
Oracle X$TRACE, Exotic Wait Event Types and Background Process Communication
 
Oracle Cluster Rac
Oracle Cluster RacOracle Cluster Rac
Oracle Cluster Rac
 
Everyday I'm Shuffling - Tips for Writing Better Spark Programs, Strata San J...
Everyday I'm Shuffling - Tips for Writing Better Spark Programs, Strata San J...Everyday I'm Shuffling - Tips for Writing Better Spark Programs, Strata San J...
Everyday I'm Shuffling - Tips for Writing Better Spark Programs, Strata San J...
 
Elastic serach
Elastic serachElastic serach
Elastic serach
 
MySQL InnoDB Cluster - New Features in 8.0 Releases - Best Practices
MySQL InnoDB Cluster - New Features in 8.0 Releases - Best PracticesMySQL InnoDB Cluster - New Features in 8.0 Releases - Best Practices
MySQL InnoDB Cluster - New Features in 8.0 Releases - Best Practices
 

Ähnlich wie MySQL Cluster performance best practices

Santo Leto - MySQL Connect 2012 - Getting Started with Mysql Cluster
Santo Leto - MySQL Connect 2012 - Getting Started with Mysql ClusterSanto Leto - MySQL Connect 2012 - Getting Started with Mysql Cluster
Santo Leto - MySQL Connect 2012 - Getting Started with Mysql ClusterSanto Leto
 
Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.
Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.
Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.Geir Høydalsvik
 
Thu 1100 duncan_john_color
Thu 1100 duncan_john_colorThu 1100 duncan_john_color
Thu 1100 duncan_john_colorDATAVERSITY
 
MySQL 8: Ready for Prime Time
MySQL 8: Ready for Prime TimeMySQL 8: Ready for Prime Time
MySQL 8: Ready for Prime TimeArnab Ray
 
Breakthrough performance with MySQL Cluster (2012)
Breakthrough performance with MySQL Cluster (2012)Breakthrough performance with MySQL Cluster (2012)
Breakthrough performance with MySQL Cluster (2012)Frazer Clement
 
200 million qps on commodity hardware : Getting started with MySQL Cluster 7.4
200 million qps on commodity hardware : Getting started with MySQL Cluster 7.4200 million qps on commodity hardware : Getting started with MySQL Cluster 7.4
200 million qps on commodity hardware : Getting started with MySQL Cluster 7.4Frazer Clement
 
UKOUG 2011: MySQL Architectures for Oracle DBA's
UKOUG 2011: MySQL Architectures for Oracle DBA'sUKOUG 2011: MySQL Architectures for Oracle DBA's
UKOUG 2011: MySQL Architectures for Oracle DBA'sFromDual GmbH
 
20141011 my sql clusterv01pptx
20141011 my sql clusterv01pptx20141011 my sql clusterv01pptx
20141011 my sql clusterv01pptxIvan Ma
 
MySQL Cluster 8.0 tutorial
MySQL Cluster 8.0 tutorialMySQL Cluster 8.0 tutorial
MySQL Cluster 8.0 tutorialFrazer Clement
 
Moodle Moot Spain: Moodle Available and Scalable with MySQL HA - InnoDB Clust...
Moodle Moot Spain: Moodle Available and Scalable with MySQL HA - InnoDB Clust...Moodle Moot Spain: Moodle Available and Scalable with MySQL HA - InnoDB Clust...
Moodle Moot Spain: Moodle Available and Scalable with MySQL HA - InnoDB Clust...Keith Hollman
 
My sql susecon_crashcourse_2012
My sql susecon_crashcourse_2012My sql susecon_crashcourse_2012
My sql susecon_crashcourse_2012sqlhjalp
 
OpenStack Days East -- MySQL Options in OpenStack
OpenStack Days East -- MySQL Options in OpenStackOpenStack Days East -- MySQL Options in OpenStack
OpenStack Days East -- MySQL Options in OpenStackMatt Lord
 
MySQL Options in OpenStack
MySQL Options in OpenStackMySQL Options in OpenStack
MySQL Options in OpenStackTesora
 
MySQL Cluster overview + development slides (2014)
MySQL Cluster overview + development slides (2014) MySQL Cluster overview + development slides (2014)
MySQL Cluster overview + development slides (2014) Frazer Clement
 
MySQL Technology Overview
MySQL Technology OverviewMySQL Technology Overview
MySQL Technology OverviewKeith Hollman
 
20200613 my sql-ha-deployment
20200613 my sql-ha-deployment20200613 my sql-ha-deployment
20200613 my sql-ha-deploymentIvan Ma
 
Oracle to MySQL 2012
Oracle to MySQL  2012 Oracle to MySQL  2012
Oracle to MySQL 2012 Marco Tusa
 
My sql cluster_taipei_event
My sql cluster_taipei_eventMy sql cluster_taipei_event
My sql cluster_taipei_eventIvan Tu
 

Ähnlich wie MySQL Cluster performance best practices (20)

NoSQL and MySQL
NoSQL and MySQLNoSQL and MySQL
NoSQL and MySQL
 
Santo Leto - MySQL Connect 2012 - Getting Started with Mysql Cluster
Santo Leto - MySQL Connect 2012 - Getting Started with Mysql ClusterSanto Leto - MySQL Connect 2012 - Getting Started with Mysql Cluster
Santo Leto - MySQL Connect 2012 - Getting Started with Mysql Cluster
 
Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.
Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.
Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.
 
Thu 1100 duncan_john_color
Thu 1100 duncan_john_colorThu 1100 duncan_john_color
Thu 1100 duncan_john_color
 
MySQL 8: Ready for Prime Time
MySQL 8: Ready for Prime TimeMySQL 8: Ready for Prime Time
MySQL 8: Ready for Prime Time
 
MySQL Cluster
MySQL ClusterMySQL Cluster
MySQL Cluster
 
Breakthrough performance with MySQL Cluster (2012)
Breakthrough performance with MySQL Cluster (2012)Breakthrough performance with MySQL Cluster (2012)
Breakthrough performance with MySQL Cluster (2012)
 
200 million qps on commodity hardware : Getting started with MySQL Cluster 7.4
200 million qps on commodity hardware : Getting started with MySQL Cluster 7.4200 million qps on commodity hardware : Getting started with MySQL Cluster 7.4
200 million qps on commodity hardware : Getting started with MySQL Cluster 7.4
 
UKOUG 2011: MySQL Architectures for Oracle DBA's
UKOUG 2011: MySQL Architectures for Oracle DBA'sUKOUG 2011: MySQL Architectures for Oracle DBA's
UKOUG 2011: MySQL Architectures for Oracle DBA's
 
20141011 my sql clusterv01pptx
20141011 my sql clusterv01pptx20141011 my sql clusterv01pptx
20141011 my sql clusterv01pptx
 
MySQL Cluster 8.0 tutorial
MySQL Cluster 8.0 tutorialMySQL Cluster 8.0 tutorial
MySQL Cluster 8.0 tutorial
 
Moodle Moot Spain: Moodle Available and Scalable with MySQL HA - InnoDB Clust...
Moodle Moot Spain: Moodle Available and Scalable with MySQL HA - InnoDB Clust...Moodle Moot Spain: Moodle Available and Scalable with MySQL HA - InnoDB Clust...
Moodle Moot Spain: Moodle Available and Scalable with MySQL HA - InnoDB Clust...
 
My sql susecon_crashcourse_2012
My sql susecon_crashcourse_2012My sql susecon_crashcourse_2012
My sql susecon_crashcourse_2012
 
OpenStack Days East -- MySQL Options in OpenStack
OpenStack Days East -- MySQL Options in OpenStackOpenStack Days East -- MySQL Options in OpenStack
OpenStack Days East -- MySQL Options in OpenStack
 
MySQL Options in OpenStack
MySQL Options in OpenStackMySQL Options in OpenStack
MySQL Options in OpenStack
 
MySQL Cluster overview + development slides (2014)
MySQL Cluster overview + development slides (2014) MySQL Cluster overview + development slides (2014)
MySQL Cluster overview + development slides (2014)
 
MySQL Technology Overview
MySQL Technology OverviewMySQL Technology Overview
MySQL Technology Overview
 
20200613 my sql-ha-deployment
20200613 my sql-ha-deployment20200613 my sql-ha-deployment
20200613 my sql-ha-deployment
 
Oracle to MySQL 2012
Oracle to MySQL  2012 Oracle to MySQL  2012
Oracle to MySQL 2012
 
My sql cluster_taipei_event
My sql cluster_taipei_eventMy sql cluster_taipei_event
My sql cluster_taipei_event
 

Mehr von Mat Keep

Blockchain & the IoT
Blockchain & the IoTBlockchain & the IoT
Blockchain & the IoTMat Keep
 
10-Step Methodology to Building a Single View with MongoDB
10-Step Methodology to Building a Single View with MongoDB10-Step Methodology to Building a Single View with MongoDB
10-Step Methodology to Building a Single View with MongoDBMat Keep
 
MongoDB at Baidu
MongoDB at BaiduMongoDB at Baidu
MongoDB at BaiduMat Keep
 
MongoDB_Spark
MongoDB_SparkMongoDB_Spark
MongoDB_SparkMat Keep
 
Business of iot_mongodb_spark
Business of iot_mongodb_sparkBusiness of iot_mongodb_spark
Business of iot_mongodb_sparkMat Keep
 
Mongo db 2.6_security_architecture
Mongo db 2.6_security_architectureMongo db 2.6_security_architecture
Mongo db 2.6_security_architectureMat Keep
 
PayPal Big Data and MySQL Cluster
PayPal Big Data and MySQL ClusterPayPal Big Data and MySQL Cluster
PayPal Big Data and MySQL ClusterMat Keep
 
MySQL HA Solutions
MySQL HA SolutionsMySQL HA Solutions
MySQL HA SolutionsMat Keep
 
MySQL Cluster NoSQL Memcached API
MySQL Cluster NoSQL Memcached APIMySQL Cluster NoSQL Memcached API
MySQL Cluster NoSQL Memcached APIMat Keep
 
My sql 5.6_replwebinar_may12
My sql 5.6_replwebinar_may12My sql 5.6_replwebinar_may12
My sql 5.6_replwebinar_may12Mat Keep
 
NoSQL and MySQL webinar - best of both worlds
NoSQL and MySQL webinar - best of both worldsNoSQL and MySQL webinar - best of both worlds
NoSQL and MySQL webinar - best of both worldsMat Keep
 

Mehr von Mat Keep (11)

Blockchain & the IoT
Blockchain & the IoTBlockchain & the IoT
Blockchain & the IoT
 
10-Step Methodology to Building a Single View with MongoDB
10-Step Methodology to Building a Single View with MongoDB10-Step Methodology to Building a Single View with MongoDB
10-Step Methodology to Building a Single View with MongoDB
 
MongoDB at Baidu
MongoDB at BaiduMongoDB at Baidu
MongoDB at Baidu
 
MongoDB_Spark
MongoDB_SparkMongoDB_Spark
MongoDB_Spark
 
Business of iot_mongodb_spark
Business of iot_mongodb_sparkBusiness of iot_mongodb_spark
Business of iot_mongodb_spark
 
Mongo db 2.6_security_architecture
Mongo db 2.6_security_architectureMongo db 2.6_security_architecture
Mongo db 2.6_security_architecture
 
PayPal Big Data and MySQL Cluster
PayPal Big Data and MySQL ClusterPayPal Big Data and MySQL Cluster
PayPal Big Data and MySQL Cluster
 
MySQL HA Solutions
MySQL HA SolutionsMySQL HA Solutions
MySQL HA Solutions
 
MySQL Cluster NoSQL Memcached API
MySQL Cluster NoSQL Memcached APIMySQL Cluster NoSQL Memcached API
MySQL Cluster NoSQL Memcached API
 
My sql 5.6_replwebinar_may12
My sql 5.6_replwebinar_may12My sql 5.6_replwebinar_may12
My sql 5.6_replwebinar_may12
 
NoSQL and MySQL webinar - best of both worlds
NoSQL and MySQL webinar - best of both worldsNoSQL and MySQL webinar - best of both worlds
NoSQL and MySQL webinar - best of both worlds
 

Kürzlich hochgeladen

UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6DianaGray10
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Brian Pichman
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxMatsuo Lab
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfinfogdgmi
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024D Cloud Solutions
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioChristian Posta
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsSafe Software
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaborationbruanjhuli
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfJamie (Taka) Wang
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintMahmoud Rabie
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemAsko Soukka
 
Valere | Digital Solutions & AI Transformation Portfolio | 2024
Valere | Digital Solutions & AI Transformation Portfolio | 2024Valere | Digital Solutions & AI Transformation Portfolio | 2024
Valere | Digital Solutions & AI Transformation Portfolio | 2024Alexander Turgeon
 
99.99% of Your Traces Are (Probably) Trash (SRECon NA 2024).pdf
99.99% of Your Traces  Are (Probably) Trash (SRECon NA 2024).pdf99.99% of Your Traces  Are (Probably) Trash (SRECon NA 2024).pdf
99.99% of Your Traces Are (Probably) Trash (SRECon NA 2024).pdfPaige Cruz
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024SkyPlanner
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfAijun Zhang
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...Aggregage
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8DianaGray10
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsSeth Reyes
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IES VE
 

Kürzlich hochgeladen (20)

UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptx
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and Istio
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership Blueprint
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
 
Valere | Digital Solutions & AI Transformation Portfolio | 2024
Valere | Digital Solutions & AI Transformation Portfolio | 2024Valere | Digital Solutions & AI Transformation Portfolio | 2024
Valere | Digital Solutions & AI Transformation Portfolio | 2024
 
201610817 - edge part1
201610817 - edge part1201610817 - edge part1
201610817 - edge part1
 
99.99% of Your Traces Are (Probably) Trash (SRECon NA 2024).pdf
99.99% of Your Traces  Are (Probably) Trash (SRECon NA 2024).pdf99.99% of Your Traces  Are (Probably) Trash (SRECon NA 2024).pdf
99.99% of Your Traces Are (Probably) Trash (SRECon NA 2024).pdf
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdf
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and Hazards
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
 

MySQL Cluster performance best practices

  • 1. MySQL Cluster : Delivering Breakthrough Performance 26th July 2012 Andrew Morgan Mat Keep Senior Product Manager – MySQL HA Senior Product Manager – MySQL HA andrew.morgan@oracle.com mat.keep@oracle.com clusterdb.com
  • 2. The presentation is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. Copyright 2012 Oracle Corporation - 26th July 2012 2
  • 3. Session Agenda •  Introduction to MySQL Cluster •  Where does MySQL Cluster fit? •  Benchmarks •  WHILE (cluster.measurePerformance() < target) { cluster.optimize(); } •  Boosting performance •  Scaling out •  Further resources Copyright 2012 Oracle Corporation - 26th July 2012 3
  • 4. MySQL Cluster – Users & Applications Extreme Scalability, Availability and Affordability •  Web •  High volume OLTP •  eCommerce •  On-Line Gaming •  Digital Marketing •  User Profile Management •  Session Management & Caching •  Content Management •  Telecoms •  Service Delivery Platforms •  VAS: VoIP, IPTV & VoD •  Mobile Content Delivery •  Mobile Payments •  LTE Access http://www.mysql.com/customers/cluster/ Copyright 2012 Oracle Corporation - 26th July 2012 4
  • 5. MySQL Cluster Architecture JPA REST Application Nodes Node Group 1 Node Group 2 F1 F2 Node 1 Node 3 Cluster Cluster Mgmt F3 F4 Mgmt F3 F4 Node 4 Node 2 F1 F2 Data Nodes Copyright 2012 Oracle Corporation - 26th July 2012 5
  • 6. When to Consider MySQL Cluster l  What are the consequences of downtime or failing to meet performance requirements? l  How much effort and $ is spent in developing and managing HA in your applications? l  Are you considering sharding your database to scale write performance? How does that impact your application and developers? l  Do your services need to be real-time? l  Will your services have unpredictable scalability demands, especially for writes ? l  Do you want the flexibility to manage your data with more than just SQL ? Copyright 2012 Oracle Corporation - 26th July 2012 6
  • 7. Where would I not Use MySQL Cluster? •  “Hot” data sets >3TB •  Replicate cold data to InnoDB •  Long running transactions •  Large rows, without using BLOBs •  Foreign Keys •  Check out MySQL Cluster 7.3 Early Access: http://labs.mysql.com/ •  Many full table scans •  Geo-Spatial indexes •  In these scenarios; InnoDB storage engine would be the right choice MySQL Cluster Evaluation Guide http://mysql.com/why-mysql/white-papers/mysql_cluster_eval_guide.php Copyright 2012 Oracle Corporation - 26th July 2012 7
  • 8. General Design Considerations •  MySQL Cluster is designed for –  Short transactions –  Many parallel transactions •  Utilize Simple access patterns to fetch data –  Use efficient scans and batching interfaces •  Analyze what your most typical use cases are –  optimize for those Overall design goal Minimize network roundtrips for your most important requests! Copyright 2012 Oracle Corporation - 26th July 2012 8
  • 9. Servicing the Most Performance-Intensive Workloads Copyright 2012 Oracle Corporation - 26th July 2012 9
  • 10. writes Servicing the Most Performance-Intensive Workloads Copyright 2012 Oracle Corporation - 26th July 2012 10
  • 11. Comparing MySQL Cluster Performance 8x Higher Performance per Node 20 18 Reads per Second (Millions) 16 14 12 10 8 6 4 2 0 MySQL Cluster 7.1 MySQL Cluster 7.2 •  1 Billion+ Reads per Minute, 8 node Intel Xeon cluster •  Multi-Threaded Data Node Extensions •  NoSQL C++ API, flexaSynch benchmark Copyright 2012 Oracle Corporation - 26th July 2012 11
  • 12. 1.2 Billion UPDATEs per Minute 25 Millions of UPDATEs per Second 20 15 10 5 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 MySQL Cluster Data Nodes •  30 x Intel E5-2600 Intel Servers •  NoSQL C++ API, flexaSynch benchmark •  ACID Transactions, with Synchronous Replication Copyright 2012 Oracle Corporation - 26th July 2012 12
  • 13. WHILE (cluster.measurePerformance() < target) •  Don’t optimize for the sake of it •  Wastes effort •  Introduces unnecessary compromises/complications •  Forget about database benchmarks •  You care about the end-to-end performance of your application on your database •  If possible drive your application to drive the database •  Measurements need to be based on representative traffic •  Measurements need to be repeatable •  Easily see impact of each optimization Copyright 2012 Oracle Corporation - 26th July 2012 13
  • 14. Where has the time gone? •  Enable the slow query log –  set global slow_query_log=1; –  set global long_query_time=3; //3 seconds –  set global log_queries_not_using_indexes=1; –  Slow queries will be written in the slow query log: mysql> show global variables like 'slow_query_log_file'; +---------------------+------------------------------+ | Variable_name | Value | +---------------------+------------------------------+ | slow_query_log_file | /data1/mysql/mysqld-slow.log | +---------------------+------------------------------+ •  Queries will be written in plain text Copyright 2012 Oracle Corporation - 26th July 2012 14
  • 15. Query Analyzer in MySQL Enterprise Monitor (take the easy option!) Copyright 2012 Oracle Corporation - 26th July 2012 15
  • 16. Simple database traffic generation create.sql: CREATE TABLE sub_name (sub_id INT NOT NULL PRIMARY KEY, name VARCHAR(30)) engine=ndb; CREATE TABLE sub_age (sub_id INT NOT NULL PRIMARY KEY, age INT) engine=ndb; INSERT INTO sub_name VALUES (1,'Bill'),(2,'Fred'),(3,'Bill'), (4,'Jane'),(5,'Andrew'),(6,'Anne'),(7,'Juliette'),(8,'Awen'), (9,'Leo'),(10,'Bill'); INSERT INTO sub_age VALUES (1,40),(2,23),(3,33),(4,19),(5,21), (6,50),(7,31),(8,65),(9,18),(10,101); query.sql: SELECT sub_age.age FROM sub_name, sub_age WHERE sub_name.name='Bill' AND sub_name.sub_id=sub_age.sub_id; Copyright 2012 Oracle Corporation - 26th July 2012 16
  • 17. Simple database traffic generation shell> mysqlslap --concurrency=5 -- iterations=100 --query=query.sql -- create=create.sql Benchmark Average number of seconds to run all queries: 0.132 seconds Minimum number of seconds to run all queries: 0.037 seconds Maximum number of seconds to run all queries: 0.268 seconds Number of clients running queries: 5 Average number of queries per client: 1 Copyright 2012 Oracle Corporation - 26th July 2012 17
  • 18. What on Earth is it doing? EXPLAIN is your friend mysql> EXPLAIN <query>; mysql> EXPLAN PARTITIONS <query>; mysql> EXPLAIN EXTENDED <query>; mysql> SHOW WARNINGS; Copyright 2012 Oracle Corporation - 26th July 2012 18
  • 19. Boosting Performance • ANALYZE TABLE •  Connection pools •  Access patterns •  Multi-threaded data •  AQL (fast JOINs) nodes •  Distribution aware •  NoSQL APIs •  Batching •  Hardware •  Schema •  More tips Copyright 2012 Oracle Corporation - 26th July 2012 19
  • 20. Before you do anything else, ANALYZE! •  New for MySQL Cluster 7.2 •  Lets the MySQL optimizer figure out how to best use indexes etc. •  Instantly speed up queries by many times mysql> ANALYZE TABLE <tab-name>; •  Repeat after changing schema, adding/removing indexes or making major data changes •  Only needs running on one mysqld in the cluster Copyright 2012 Oracle Corporation - 26th July 2012 20
  • 21. Access patterns •  Primary key reads/writes -> O(1) •  Independent of database size and number of nodes •  Index searched -> O(log n) •  n = number of tuples •  BLOBs are stored in second table -> take longer to access •  JOINs massively faster in MySQL Cluster 7.3 •  Partition pruning •  By allowing a query to be satisfied with a single data node, reduce resource consumption -> greater throughput •  If result sets not large, will also reduce latency Copyright 2012 Oracle Corporation - 26th July 2012 21
  • 22. Adaptive Query Localization Scaling Distributed Joins 70x More Performance •  Perform Complex Queries mysqld across Shards •  JOINs pushed down to data nodes A Data Nodes •  Executed in parallel Q •  Returns single result set to MySQL L •  Opens Up New Use-Cases •  Real-time analytics •  Recommendations engines mysqld •  Analyze click-streams Data Nodes DON’T COMPROMISE FUNCTIONALITY TO SCALE-OUT !! Copyright 2012 Oracle Corporation - 26th July 2012 22
  • 23. MySQL Cluster 7.2 AQL Test Query Web-Based Content Management System MySQL Server Data Data Node1 Node2 Copyright 2012 Oracle Corporation - 26th July 2012 23
  • 24. Web-Based CMS Query Execution Time Seconds 70x More 100 Performance 90 80 70 87.23 seconds 60 50 40 30 20 10 1.26 seconds 0 MySQL Cluster 7.1 MySQL Cluster 7.2 Must Analyze tables for best results mysql> ANALYZE TABLE <tab-name>; Copyright 2012 Oracle Corporation - 26th July 2012 24
  • 25. Did I mention ANALYZE TABLE? Copyright 2012 Oracle Corporation - 26th July 2012 25
  • 26. AQL – How to Use it •  Activated when ndb_join_pushdown is on (default) •  Rules for a Join to be pushed down: 1.  Joined columns use identical types 2.  No reference to BLOB or TEXT columns 3.  No explicit lock 4.  Child tables in the Join must be accessed using one of the ref, eq_ref, or const 5.  Tables not explicitly partitioned by [LINEAR] HASH, LIST, or RANGE 6.  Query plan doesn’t select ‘Using join buffer' 7.  If root of Join is an eq_ref or const, child tables must be joined by eq_ref •  Run ANALYZE TABLE <tab-name> on each table once •  Use EXPLAIN to see what components are being pushed down: •  Extra: Child of 'd' in pushed join@1 •  EXPLAIN EXTENDED <query>;SHOW WARNINGS; Copyright 2012 Oracle Corporation - 26th July 2012 26
  • 27. Distribution Aware Apps SELECT SUM(population) FROM towns •  Partition selected using hash on WHERE country=“UK”; Partition Key Partition Key Primary Key •  Primary Key by default town country population •  User can override in table definition Maidenhead UK 78000 •  MySQL Server (or NDB API) will Paris France 2193031 attempt to send transaction to the Boston UK 58124 correct data node Boston USA 617594 •  If all data for the transaction are in SELECT SUM(population) FROM towns the same partition, less messaging - WHERE town=“Boston”; > faster Partition Key •  Aim to have all rows for high-running Primary Key queries in same partition town country population Maidenhead UK 78000 Paris France 2193031 Boston UK 58124 Boston USA 617594 Copyright 2012 Oracle Corporation - 26th July 2012 27
  • 28. Distribution Aware – Multiple Tables Partition Key Primary Key sub_id age gender •  Extend partition awareness over 19724 25 male multiple tables 84539 43 female •  Same rule – aim to have all data for 19724 16 female instance of high running 74574 21 female transactions in the same partition Partition Key Primary Key ALTER TABLE service_ids service sub_id svc_id PARTITION BY KEY(sub_id); twitter 19724 76325732 twitter 84539 67324782 facebook 19724 83753984 EXPLAIN PARTITIONS <query>; facebook 73642 87324793 Copyright 2012 Oracle Corporation - 26th July 2012 28
  • 29. Validate if “partition pruning” is working mysql> SHOW GLOBAL STATUS LIKE 'ndb_pruned_scan_count'; +-----------------------+-------+ | Variable_name | Value | +-----------------------+-------+ | Ndb_pruned_scan_count | 12 | +-----------------------+-------+ mysql> SELECT * FROM services WHERE sub_id=1; +--------+--------------+--------------+ | sub_id | service_name | service_parm | +--------+--------------+--------------+ | 1 | IM | 878 | | 1 | ssh | 666 | | 1 | Video | 654 | +--------+--------------+--------------+ mysql> SHOW GLOBAL STATUS LIKE 'ndb_pruned_scan_count'; +-----------------------+-------+ | Variable_name | Value | +-----------------------+-------+ | Ndb_pruned_scan_count | 13 | +-----------------------+-------+ Copyright 2012 Oracle Corporation - 26th July 2012 29
  • 30. Batching •  MySQL Cluster allows batching on •  Inserts, index scans (when not part of a JOIN), PK reads, PK deletes, and PK (most) updates. •  Batching means that one network round trip is used to read/modify a number of records → less ping-pong! •  If you can batch - do it! •  Example – Insert 1M records •  No batching: •  INSERT INTO t1(data) VALUES (<data>); •  765 seconds to insert 1M records •  Batching (batches of 16): •  INSERT INTO t1(<columns>) VALUES (<data>), (<data>)... •  50 seconds to insert 1M records Copyright 2012 Oracle Corporation - 26th July 2012 30
  • 31. Batching, more examples SELECT * FROM t1 WHERE userid=1 AND serviceid IN (1,2,3,4,5,7,8,9,10); SET transaction_allow_batching=1; //must be set on the connection BEGIN; INSERT INTO t1 ....; INSERT INTO t2 ....; INSERT INTO t3 ....; INSERT INTO t4 ....; DELETE FROM t5 ....; UPDATE t1 SET value='new value' WHERE id=1; COMMIT; Copyright 2012 Oracle Corporation - 26th July 2012 31
  • 32. Optimizing schema - denormalization userid   voip_data   userid   bb_data   SELECT * FROM bb,voip WHERE 1   <data>   1   <data>   2   <data>   2   <data>   bb.userid=voip.userid AND 3   <data>   3   <data>   bb.userid=1; 4   <data>   4   <data>   voip bb userid   voip_data   bb_data   1   <data>   <data>   mysql> SELECT * FROM 2   <data>   <data>   voip_bb WHERE userid=1; 3   <data>   <data>   4   <data>   <data>   1.7x improvement voip_bb Copyright 2012 Oracle Corporation - 26th July 2012 32
  • 33. Connection Pools •  Network hops increase latency (e.g. Compared with InnoDB read of cached data) App thread App thread App thread App thread App thread App thread •  Increase throughput by sending in lots of parallel operations •  Multiple client connections (sessions) to each MySQL Server mysqld mysqld •  Multiple MySQL Servers NDB API NDB API •  Connection pooling between MySQL Servers and data nodes •  Set ndb-cluster-connection-pool > 1 in my.cnf •  Ensure enough [api] sections in Data Nodes config.ini •  Don’t assign hostnames! Copyright 2012 Oracle Corporation - 26th July 2012 33
  • 34. Multi-threaded data nodes •  Scaling out on commodity hardware is the standard Application Nodes way to increase performance •  Add more data nodes and Node 3 API nodes as required •  MySQL Cluster 7.2 Node 1 increases the ability to also scale-up each data node •  Increases maximum number of utilised threads from 8 to 59 Node 2 Node 4 Node Group 1 Node Group 2 Copyright 2012 Oracle Corporation - 26th July 2012 34
  • 35. Multi-threaded data nodes •  Threads: •  ldm: 1,2,4,8 or 12 Local Application Nodes Query Handler threads •  tc: typically ldm/4 Transaction Coordinator threads •  send: ~2-3 Send Data Node 1 recv send main threads •  recv: ~2-4 Receive threads •  main: 1 Main thread •  rep: 1 Replication tc ldm rep io thread •  io: 1 I/O thread Copyright 2012 Oracle Corporation - 26th July 2012 35
  • 36. Multi-threaded data nodes •  Applies to ntbdmtd only •  Configure through either: •  MaxNoOfExecutionThreads •  Single value for number of threads •  System will allocate these threads to blocks in a reasonable way •  ThreadConfig •  Specify explicitly how many threads for each block type •  Lock threads to CPUs for further performance gains •  Threadconfig=main={cpubind=0},ldm= {count=4,cpubind=1,2,5,6},io= {count=2,cpubind=3,4} Copyright 2012 Oracle Corporation - 26th July 2012 36
  • 37. Multi-threaded data nodes – starting point for ThreadConfig 24 threads 32 threads 40 threads 48 thread ldm 8 12 16 16 tc 4 6 8 12 recv 3 3 4 5 send 3 3 4 4 rep 1 1 1 1 Note that some threads are left for other data node blocks as well as the OS Copyright 2012 Oracle Corporation - 26th July 2012 37
  • 38. NoSQL APIs Clients JDBC / ODBC PHP / PERL Native memcached HTTP/REST Python / Ruby NDB API Data Nodes Mix •  SQL: Complex, relational queries & •  Memcached: Key-Value web services Match •  Java: Enterprise Apps •  NDB API: Real-time services Copyright 2012 Oracle Corporation - 26th July 2012 38
  • 39. Hardware •  High bandwidth, low latency network •  Turn off firewalls if you can •  Use multiple disks •  Checkpoints •  Log files •  Table spaces •  SSDs •  Biggest benefit for Table spaces •  Refer to MySQL Cluster Evaluation Guide for more details Copyright 2012 Oracle Corporation - 26th July 2012 39
  • 40. MySQL Query Cache •  Don't enable the Query Cache! •  It is very expensive to invalidate over multiple MySQL servers •  A write on one server will force the others to purge their cache. •  If you have tables that are read only (or change very seldom): my.cnf: query_cache_size=1000000 query_cache_type=2 (ON DEMAND) mysql> SELECT SQL_CACHE <cols> .. FROM table; •  SQL_CACHE tells (demands) MySQL to cache the results from this SELECT •  This can be good for STATIC data Copyright 2012 Oracle Corporation - 26th July 2012 40
  • 41. Non-Durable tables •  Some types of tables account for a lot of WRITEs, but do not need to be recovered (e.g, Session tables) •  Unnecessary to persist such tables - no REDO LOGs or CHECKPOINTs •  Create these tables as 'NO LOGGING' tables: mysql> set ndb_table_no_logging=1; mysql> create table session_table (..) engine=ndb; mysql> set ndb_table_no_logging=0; •  After system restart table will be there, but empty! Copyright 2012 Oracle Corporation - 26th July 2012 41
  • 42. More optimisation tips •  When using auto-increment columns, increase ndb- autoincrement-prefetch-sz •  Set RedoBuffer=32-64M •  Disk-based tables: •  Increase UNDO_BUFFER for write-intensive apps •  Increase DiskIOThreadPool •  Increase DiskPageBufferMemory for better caching in the data nodes; Monitor effectiveness using NDBINFO / MEM • FragmentLogFileSize=256M • NoOfFragmentLogFiles= 6 x DataMemory (in MB) / (4x 256MB) •  Use OPTIMIZE TABLE and perform rolling restarts if memory fragmentation is an issue Copyright 2012 Oracle Corporation - 26th July 2012 42
  • 43. Scaling out with MySQL Cluster Manager client mysqld mysqld ndb_mgmd ndb_mgmd agent agent 192.168.0.10 192.168.0.11 ndbd ndbd ndbd ndbd agent agent 192.168.0.12 192.168.0.13 Copyright 2012 Oracle Corporation - 26th July 2012 43
  • 44. Scaling out with MySQL Cluster Manager client mysqld mysqld mysqld mysqld ndb_mgmd ndb_mgmd agent agent 192.168.0.10 192.168.0.11 ndbd ndbd ndbd ndbd ndbd ndbd ndbd ndbd agent agent agent agent 192.168.0.12 192.168.0.13 192.168.0.14 192.168.0.15 Copyright 2012 Oracle Corporation - 26th July 2012 44
  • 45. Scaling out with MySQL Cluster Manager mcm> add hosts --hosts=192.168.0.14,192.168.0.15 mysite; mcm> add package --basedir=/usr/local/mysql_7_0_9 --hosts=192.168.0.14,192.168.0.15 7.0.9; mcm> add process -- processhosts=mysqld@192.168.0.10,mysqld@192.168.0. 11,ndbd@192.168.0.14,ndbd@192.168.0.15,ndbd@192.16 8.0.14,ndbd@192.168.0.15 -s port:mysqld: 52=3307,port:mysqld:53=3307 mycluster; mcm> start process --added mycluster; mysql> ALTER ONLINE TABLE <table-name> REORGANIZE PARTITION; mysql> OPTIMIZE TABLE <table-name>; Copyright 2012 Oracle Corporation - 26th July 2012 45
  • 46. Download MySQL Cluster Today! http://www.mysql.com/downloads/cluster/#downloads
  • 47. Further resources •  MySQL Cluster Performance white paper: http://www.mysql.com/why-mysql/white-papers/ mysql_wp_cluster_performance.php •  MySQL Cluster Forum: http://forums.mysql.com/list.php?25 •  MySQL Cluster Evaluation guide: http://www.mysql.com/why-mysql/white-papers/ mysql_cluster_eval_guide.php •  MySQL Cluster in Web-Scale Architectures: http://www.mysql.com/why-mysql/white-papers/ mysql_cluster_eval_guide.php