Ndb Cluster
Encyclopedia
Ndb Cluster is the distributed database system underlying MySQL Cluster
MySQL Cluster
MySQL Cluster is a technology which provides shared-nothing clustering capabilities for the MySQL database management system. It was first included in the production release of MySQL 4.1 in November 2004. It is designed to provide high availability and high performance, while allowing for nearly...

. It can be used independently of a MySQL
MySQL
MySQL officially, but also commonly "My Sequel") is a relational database management system that runs as a server providing multi-user access to a number of databases. It is named after developer Michael Widenius' daughter, My...

 Server.

From the MySQL Server perspective the Ndb Cluster is a Storage engine
Database engine
A database engine is the underlying software component that a database management system uses to create, read, update and delete data from a database....

 for storing tables of rows. From the Ndb Cluster perspective, a MySQL Server instance is an 'API process' connected to the Cluster. Ndb Cluster can concurrently support access from other types of API processes. All API processes can operate on the same tables and data stored in the Ndb Cluster.

Standalone Ndb Cluster

Ndb Cluster has the following capabilities independent of any attached MySQL Server :
  • Persistent, distributed storage of tables with unique or ordered indexes
    • Redo logging, checkpointing, system recovery
  • Primary key, unique key, table scan and ordered index scan
    • Parallel scan execution with 'pushed-down' filters
  • Row locks, transactional updates
  • Synchronous data replication within the cluster, automatic failover + recovery
    • Automatic connection failover for 'API' processes
  • Standard SQL datatypes including Blobs etc.
  • Storage of data on disk
  • Asynchronous data change triggers mechanism
  • DDL
    Data Definition Language
    A data definition language or data description language is a syntax similar to a computer programming language for defining data structures, especially database schemas.-History:...

     operations (although independent DDL will not currently be recognised by any attached MySQL servers)
  • Online index add, online table alter
  • Online add node, table reorganisation
  • Online backup
  • Online upgrade

MySQL Cluster (Ndb Cluster + MySQL Server(s))

MySQL Cluster
MySQL Cluster
MySQL Cluster is a technology which provides shared-nothing clustering capabilities for the MySQL database management system. It was first included in the production release of MySQL 4.1 in November 2004. It is designed to provide high availability and high performance, while allowing for nearly...

 currently uses the MySQL
MySQL
MySQL officially, but also commonly "My Sequel") is a relational database management system that runs as a server providing multi-user access to a number of databases. It is named after developer Michael Widenius' daughter, My...

 Server to provide the following capabilities on top of Ndb Cluster:
  • SQL
    SQL
    SQL is a programming language designed for managing data in relational database management systems ....

     parsing / optimising / execution capability
    • Connectors to applications via JDBC, ODBC ...
  • Cross-table join
    Join (SQL)
    An SQL join clause combines records from two or more tables in a database. It creates a set that can be saved as a table or used as is. A JOIN is a means for combining fields from two tables by using values common to each. ANSI standard SQL specifies four types of JOINs: INNER, OUTER, LEFT, and RIGHT...

     mechanism
  • User authentication and authorisation
  • Asynchronous data replication to other systems

Usage

Ndb Cluster is often configured as a MySQL Cluster (An Ndb Cluster with attached MySQL Server processes) with one or more non-MySQL Server API processes attached.

All API processes including the MySQL Server use the NDBAPI C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...

 client library to connect to the Ndb Cluster and perform operations.

It is currently recommended that at least one MySQL Server is connected to an Ndb Cluster to perform DDL
Data Definition Language
A data definition language or data description language is a syntax similar to a computer programming language for defining data structures, especially database schemas.-History:...

operations.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK