MySQL Cluster data and API nodes communicate with one another by
passing messages to one another. The sending of a message from
one node and its reception by another node is referred to as a
signal; the NDB
Protocol is the set of rules governing the format of these
messages and the manner in which they are passed.
An NDB message is typically either a
request or a
response. A request indicates that an API
node wants to perform an operation involving cluster data (such
as retrieval, insertion, updating, or deletion) or transactions
(commit, roll back, or to fetch or relase a transaction record).
A request is, when necessary, accompanied by key or index
information. The response sent by a data node to this request
indicates whether or not the request succeeded and, where
appropriate, is accompanied by one or more data messages.
Request types.
A request is represented as a REQ message.
Requests can be divided into those handling data and those
handling transactions:
Data requests. Data request operations are of three principal types:
Primary key lookup operations.
These are performed through the exchange of
TCKEY messages.
Unique key lookup operations.
These are performed through the exchange of
TCINDX messages.
Table or index scan operations.
These are performed through the exchange of
SCANTAB messages.
Data request messages are often accompanied by
KEYINFO messages,
ATTRINFO messages, or both sorts of
messages.
Transactional requests. These may be divided into two categories:
Commits and rollbacks, which are represented by
TC_COMMIT and
TCROLLBACK request messages,
respectively.
Transaction record requests — that is,
transaction record acquisition and release.
These requests are handled through the use of,
respectively, TCSEIZE and
TCRELEASE request messages.
Response types. A response indicates either the success or the failure of the request to which it is sent in reply:
Response indicating success.
This type of response is represented as a
CONF (confirmation) message, and is
often accompanied by data, which is packaged as one or
more TRANSID_AI messages.
Response indicating failure.
This type of response is represented as a
REF (refusal) message.
These message types and their relationship to one another are discussed in more detail in Section 6.3.2, “Message Naming Conventions and Structure”.
