MySQL NDB Cluster API Developer Guide

MySQL NDB Cluster API Developer Guide

This is the MySQL NDB Cluster API Developer Guide, which provides information about developing applications using MySQL NDB Cluster as a data store. Application interfaces covered in this Guide include the low-level C++-language NDB API (see Chapter 2, The NDB API), the C-language MGM API for communicating with and controlling NDB Cluster management servers (see Chapter 3, The MGM API), and the MySQL NDB Cluster Connector for Java, which is a collection of Java APIs for writing applications against NDB Cluster, including JDBC, JPA, and ClusterJ (see Chapter 4, MySQL NDB Cluster Connector for Java).

MySQL NDB Cluster 8.0, 8.4, and 9.0 also provide support for applications written using Node.js. Node.js support is deprecated in NDB 9.0, and is removed altogether as of NDB 9.1. See Chapter 5, MySQL NoSQL Connector for JavaScript, for more information.

This Guide includes concepts, terminology, class and function references, practical examples, common problems, and tips for using these APIs in applications.

For information about NDB internals that may be of interest to developers working with NDB, see MySQL NDB Cluster Internals Manual.

The information presented in this guide is current for recent releases of MySQL NDB Cluster 8.0 up to and including NDB Cluster 8.0.41, as well as the NDB Cluster 8.4 LTS series, up to and including NDB Cluster 8.4.0. This guide can also be used with NDB Cluster 9.1. Due to significant functional and other changes in NDB Cluster and its underlying APIs, you should not expect this information to apply to versions of the NDB Cluster software prior to NDB Cluster 7.5. Users of older NDB Cluster releases should upgrade to the latest available release of NDB Cluster 8.0, which is the most recent GA release series, or to the NDB Cluster 8.4 LTS series.

For more information about NDB Cluster 8.0, see What is New in MySQL NDB Cluster 8.0. For information about NDB Cluster 8.4, see What is New in MySQL NDB Cluster 8.4. For information about NDB Cluster 9.1, see What is New in MySQL NDB Cluster 9.1.

For legal information, see the Legal Notices.

For help with using MySQL, please visit the MySQL Forums, where you can discuss your issues with other MySQL users.

Licensing information—NDB APIs.  If you are using the NDB APIs with a Commercial release of MySQL NDB Cluster, see the MySQL NDB Cluster 8.0 Commercial Release License Information User Manual for licensing information, including licensing information relating to third-party software that may be included in this Commercial release. If you are using the NDB APIs with a Community release of MySQL NDB Cluster, see the MySQL NDB Cluster 8.0 Community Release License Information User Manual for licensing information, including licensing information relating to third-party software that may be included in this Community release.

Document generated on: 2024-12-24 (revision: 80591)

Table of Contents

Preface and Legal Notices
1 NDB Cluster APIs: Overview and Concepts
1.1 NDB Cluster API Overview: Introduction
1.1.1 NDB Cluster API Overview: The NDB API
1.1.2 NDB Cluster API Overview: The MGM API
1.2 NDB Cluster API Overview: Version Compatibility
1.3 NDB Cluster API Overview: Terminology
1.4 The NDB Transaction and Scanning API
1.4.1 Core NDB API Classes
1.4.2 Application Program Basics
1.4.3 Review of NDB Cluster Concepts
1.4.4 The Adaptive Send Algorithm
1.5 Application-level partitioning
1.6 Using NdbInterpretedCode
2 The NDB API
2.1 Getting Started with the NDB API
2.1.1 Compiling and Linking NDB API Programs
2.1.2 Connecting to the Cluster
2.1.3 Mapping MySQL Database Object Names and Types to NDB
2.2 The NDB API Class Hierarachy
2.3 NDB API Classes, Interfaces, and Structures
2.3.1 The Column Class
2.3.2 The Datafile Class
2.3.3 The Dictionary Class
2.3.4 The Element Structure
2.3.5 The Event Class
2.3.6 The ForeignKey Class
2.3.7 The HashMap Class
2.3.8 The Index Class
2.3.9 The LogfileGroup Class
2.3.10 The List Class
2.3.11 The Ndb Class
2.3.12 The Ndb_cluster_connection Class
2.3.13 The NdbBlob Class
2.3.14 The NdbDictionary Class
2.3.15 The NdbError Structure
2.3.16 The NdbEventOperation Class
2.3.17 The NdbIndexOperation Class
2.3.18 The NdbIndexScanOperation Class
2.3.19 The NdbInterpretedCode Class
2.3.20 The NdbOperation Class
2.3.21 The NdbRecAttr Class
2.3.22 The NdbRecord Interface
2.3.23 The NdbScanFilter Class
2.3.24 The NdbScanOperation Class
2.3.25 The NdbTransaction Class
2.3.26 The Object Class
2.3.27 The Table Class
2.3.28 The Tablespace Class
2.3.29 The Undofile Class
2.4 NDB API Errors and Error Handling
2.4.1 Handling NDB API Errors
2.4.2 NDB Error Codes: by Type
2.4.3 NDB Error Codes: Single Listing
2.4.4 NDB Error Classifications
2.5 NDB API Examples
2.5.1 Basic NDB API Examples
2.5.2 NDB API Example Using Synchronous Transactions
2.5.3 NDB API Example Using Synchronous Transactions and Multiple Clusters
2.5.4 NDB API Example: Handling Errors and Retrying Transactions
2.5.5 NDB API Basic Scanning Example
2.5.6 NDB API Example: Using Secondary Indexes in Scans
2.5.7 NDB API Example: Using NdbRecord with Hash Indexes
2.5.8 NDB API Example Comparing RecAttr and NdbRecord
2.5.9 NDB API Event Handling Example
2.5.10 NDB API Example: Basic BLOB Handling
2.5.11 NDB API Example: Handling BLOB Columns and Values Using NdbRecord
2.5.12 NDB API Simple Array Example
2.5.13 NDB API Simple Array Example Using Adapter
2.5.14 Timestamp2 Example
2.5.15 Common Files for NDB API Array Examples
3 The MGM API
3.1 MGM API Concepts
3.2 MGM API Function Listings
3.2.1 Log Event Functions
3.2.2 MGM API Error Handling Functions
3.2.3 Management Server Handle Functions
3.2.4 Management Server Connection Functions
3.2.5 Cluster Status Functions
3.2.6 Functions for Starting & Stopping Nodes
3.2.7 Cluster Log Functions
3.2.8 Backup Functions
3.2.9 Single-User Mode Functions
3.2.10 TLS Functions
3.3 MGM API Data Types
3.4 MGM API Data Structures
3.5 MGM API Errors
3.6 MGM API Examples
3.6.1 Basic MGM API Event Logging Example
3.6.2 MGM API Event Handling with Multiple Clusters
4 MySQL NDB Cluster Connector for Java
4.1 MySQL NDB Cluster Connector for Java: Overview
4.1.1 MySQL NDB Cluster Connector for Java Architecture
4.1.2 Java and NDB Cluster
4.1.3 The ClusterJ API and Data Object Model
4.2 Using MySQL NDB Cluster Connector for Java
4.2.1 Getting, Installing, and Setting Up MySQL NDB Cluster Connector for Java
4.2.2 Using ClusterJ
4.2.3 Using Connector/J with NDB Cluster
4.3 ClusterJ API Reference
4.3.1 com.mysql.clusterj
4.3.2 com.mysql.clusterj.annotation
4.3.3 com.mysql.clusterj.query
4.3.4 Constant field values
4.4 MySQL NDB Cluster Connector for Java: Limitations and Known Issues
5 MySQL NoSQL Connector for JavaScript
5.1 MySQL NoSQL Connector for JavaScript Overview
5.2 Installing the JavaScript Connector
5.3 Connector for JavaScript API Documentation
5.3.1 Batch
5.3.2 Context
5.3.3 Converter
5.3.4 Errors
5.3.5 Mynode
5.3.6 Session
5.3.7 SessionFactory
5.3.8 TableMapping and FieldMapping
5.3.9 TableMetadata
5.3.10 Transaction
5.4 Using the MySQL JavaScript Connector: Examples
5.4.1 Requirements for the Examples
5.4.2 Example: Finding Rows
5.4.3 Inserting Rows
5.4.4 Deleting Rows
Index