没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
In this whitepaper learn the fundamentals of how to design and select the proper components for a successful MySQL Cluster evaluation. We explore hardware, networking and software requirements, and work through basic functional testing and evaluation best-practices.
资源推荐
资源详情
资源评论
Copyright © 2016, Oracle and/or its affiliates. All rights reserved
MySQL Cluster Evaluation Guide
Getting the most out of your MySQL Cluster Evaluation
A MySQL
®
Technical White Paper
October 2016
Copyright © 2016, Oracle and/or its affiliates. All rights reserved Page 2 of 26
Table of Contents
1! Introduction+...................................................................................................................................+3!
2! What+is+MySQL+Cluster?+..................................................................................................................+3!
2.1! MySQL!Cluster!Architecture!.........................................................................................................................................................!3!
3! Key+New+Features+of+MySQL+Cluster+...............................................................................................+5!
4! Points+to+Consider+Before+Starting+an+Evaluation+............................................................................+6!
4.1! Will!MySQL!Cluster!“out!of!the!box”!run!an!application!faster!than!my!existing!MySQL!database?!............!6!
4.2! How!do!I!install!MySQL!Cluster?!................................................................................................................................................!6!
4.3! Does!the!database!need!to!run!on!a!particular!operating!system?!.............................................................................!7!
4.4! Will!the!entire!database!fit!in!memory?!..................................................................................................................................!7!
4.5! Does!the!application!make!use!of!complex!JOIN!operations?!........................................................................................!8!
4.6! Does!the!application!make!extensive!use!of!full!table!scans?!........................................................................................!9!
4.7! Does!the!database!require!Foreign!Keys?!..............................................................................................................................!9!
4.8! Does!the!application!require!full-text!search?!.....................................................................................................................!9!
4.9! How!will!MySQL!Cluster!perform!compared!to!other!storage!engines?!...................................................................!9!
4.10! Does!MySQL!Cluster’s!data!distribution!add!complexity!to!my!application!and!limit!the!types!of!
queries!I!can!run?!.......................................................................................................................................................................................!11!
4.11! What!does!my!application!observe!during!the!(sub-second)!failover!of!a!node?!............................................!11!
4.12! Where!does!MySQL!Cluster!sit!with!respect!to!the!CAP!(Consistency,!!Availability!&!Performance)!
Theorem?!.......................................................................................................................................................................................................!12!
5! Evaluation+Best+Practices+..............................................................................................................+12!
5.1! Hardware!............................................................................................................................................................................................!12!
5.2! Performance!metrics!.....................................................................................................................................................................!13!
5.3! Test!tools!............................................................................................................................................................................................!14!
5.4! SQL!and!NoSQL!interfaces!...........................................................................................................................................................!14!
5.5! Data!model!and!query!design!....................................................................................................................................................!15!
5.6! Using!disk!data!tables!or!in-memory!tables!........................................................................................................................!17!
5.7! User!defined!partitioning!and!distribution!awareness!..................................................................................................!17!
5.8! Parallelizing!applications!an d!o th er !tips!..............................................................................................................................!18!
6! Advice+Concerning+Configuration+Files+..........................................................................................+19!
6.1! config.ini!..............................................................................................................................................................................................!19!
6.2! my.cnf!...................................................................................................................................................................................................!20!
7! Sanity+Check+.................................................................................................................................+20!
7.1! A!few!basic!tests!to!confirm!the!Cluster!is!ready!for!testing!........................................................................................!20!
8! Troubleshooting+...........................................................................................................................+21!
8.1! Table!Full!(Memory!or!Disk)!......................................................................................................................................................!21!
8.2! Space!for!REDO!Logs!Exhausted!...............................................................................................................................................!24!
8.3! Deadlock!Timeout!...........................................................................................................................................................................!25!
8.4! Distribution!Changes!.....................................................................................................................................................................!25!
9! Conclusion+....................................................................................................................................+25!
10! Additional+Resources+..................................................................................................................+26!
Copyright © 2016, Oracle and/or its affiliates. All rights reserved Page 3 of 26
1 Introduction
The purpose of this guide is to enable you to efficiently evaluate the MySQL Cluster database and
determine if it is the right choice for your application, whether as part of a new project or an
upgrade to an existing service.
This guide presents a brief overview of the MySQL Cluster database before then discussing:
• Considerations before initiating an evaluation
• Evaluation best practices
• Configuration options and sanity checking
• Troubleshooting
By following the recommendations in this Guide, you will be able to quickly and effectively evaluate
MySQL Cluster and ultimately accelerate the time to market of your new service.
2 What is MySQL Cluster?
MySQL Cluster is a write-scalable, real-time in-memory, ACID-compliant transactional database,
combining 99.999% availability with the low TCO of open source. Designed around a distributed,
multi-master architecture with no single point of failure, MySQL Cluster scales horizontally on
commodity hardware with auto-sharding to serve read and write intensive workloads, accessed via
SQL and NoSQL interfaces.
MySQL Cluster's real-time design delivers predictable, millisecond response times with the ability
to service millions of operations per second. Support for in-memory and disk-based data, automatic
data partitioning (sharding) with load balancing and the ability to add nodes to a running cluster
with zero downtime allows linear database scalability to handle the most unpredictable workloads.
MySQL Cluster integrates the standard MySQL server with a clustered storage engine called NDB.
The data within a MySQL Cluster can therefore be accessed via various MySQL connectors like
PHP, Java or .NET as well as standard SQL. Data can also be accessed and manipulated directly
using MySQL Cluster’s native NoSQL NDB API. This C++ interface provides fast, low-level
connectivity to data stored in a MySQL Cluster.
Additional NoSQL interfaces are available that access the cluster through the NDB API. Java
applications can get easy and efficient access to the data by using MySQL Cluster Connector for
Java which provides two object-relational mapping persistence solutions – ClusterJ or ClusterJPA
– both frameworks go directly to the NDB API rather than using JDBC and the MySQL Server. Both
ClusterJ and JPA directly map Java objects to relational tables in the MySQL Cluster database. In
MySQL Cluster 7.2, a plug-in for Memcached was introduced which enables Memcached clients to
directly access tables via the standard Memcached protocol. MySQL 7.3 also added a driver for
Node.js which provides direct access (not via SQL) to the data for JavaScript code running in an
application server.
2.1 MySQL Cluster Architecture
Architecturally, MySQL Cluster consists of three different node types, each serving a dedicated role
in delivering 99.999% availability with real time performance and linear scalability of both read and
write operations.
Figure 1shows a simplified architecture diagram of a MySQL Cluster consisting of twelve Data
Nodes split across six node groups.
Copyright © 2016, Oracle and/or its affiliates. All rights reserved Page 4 of 26
Figure 1 MySQL Cluster architecture
Data Nodes are the main nodes of a MySQL Cluster. They provide the following functionality:
• Storage and management of both in-memory and disk-based data
• Automatic and user defined partitioning (sharding) of tables
• Synchronous replication of data between data nodes
• Transactions and data retrieval
• Automatic fail over
• Automatic resynchronization after failure for self-healing
Tables are automatically sharded across the data nodes, and each data node is a master
accepting write operations, making it very simple to scale write-intensive workloads across
commodity nodes, with complete application transparency.
By storing and distributing data in a shared-nothing architecture, i.e. without the use of a shared-
disk, and synchronously replicating data to at least one replica, if a Data Node happens to fail,
there will always be another Data Node storing the same information. This allows for requests and
transactions to continue to be satisfied without interruption. Any transactions which are aborted
during the short (sub-second) failover window following a Data node failure are rolled back and can
be re-run.
It is possible to choose how to store data; either all in memory or with some on disk (non-indexed
data only). In-memory storage can be especially useful for data that is frequently changing (the
active working set). Data stored in-memory is routinely check pointed to disk locally and
coordinated across all Data Nodes so that the MySQL Cluster can be recovered in case of a
complete system failure – such as a power outage. Disk-based data can be used to store data with
less strict performance requirements, where the data set is bigger than the available RAM. As with
most other database servers, a page-cache is used to cache frequently used disk-based data in
the Data Nodes’ memory in order to increase the performance.
Application Nodes provide connectivity from the application logic to the data nodes. Applications
can access the database using SQL through one or many MySQL Servers performing the function
of SQL interfaces into the data stored within a MySQL Cluster. When going through a MySQL
Server, any of the standard MySQL connectors can be used
1
, offering a wide range of access
technologies.
1
http://www.mysql.com/downloads/connector/
剩余25页未读,继续阅读
资源评论
cddvd
- 粉丝: 0
- 资源: 12
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功