このページは機械翻訳したものです。
このテーブルには、NDB トランスポータに関する情報が格納されます。
transporters テーブルには、次のカラムがあります:
-
node_idクラスタ内のこのデータノードの一意のノード ID
-
remote_node_idリモートデータノードのノード ID
-
status接続のステータス
-
remote_addressリモートホストの名前または IP アドレス
-
bytes_sentこの接続を使用して送信されたバイト数
-
bytes_receivedこの接続を使用して受信されたバイト数
-
connect_countこのトランスポータ上で確立された接続の回数
-
overloadedこのトランスポータが現在過負荷状態である場合は 1、それ以外の場合は 0
-
overload_countこのトランスポータが接続してから過負荷状態になった回数
-
slowdownこのトランスポータが低速状態の場合は 1、それ以外の場合は 0
-
slowdown_count接続以降、このトランスポータが低速状態になった回数
メモ
transporters テーブルには、クラスタ内で実行中のデータノードごとに、そのノードとクラスタ内のすべてのノード (自分自身を含む) との各接続のステータスを示す行が表示されます。 この情報は、テーブルの status カラムに示されます。このカラムは、CONNECTING、CONNECTED、DISCONNECTING、または DISCONNECTED のいずれかの値になる可能性があります。
構成されているが、現在はクラスタに接続されていない API および管理ノードへの接続は、DISCONNECTED のステータスで示されます。 node_id が、現在接続されていないデータノードの行である場合、このテーブルには表示されません。 (これは、ndbinfo.nodes テーブルの切断されたノードの省略に似ています。
remote_address は、remote_node_id カラムに ID が表示されないノードのホスト名またはアドレスです。 このノードからの bytes_sent およびこのノードによる bytes_received はそれぞれ、接続が確立されてから、この接続を使用してノードによって送信されたバイト数と受信されたバイト数です。 ステータスが CONNECTING または DISCONNECTED であるノードの場合、これらのカラムには常に 0 が表示されます。
ndb_mgm クライアントの SHOW コマンドの出力に示されるように、2 つのデータノード、2 つの SQL ノード、および 1 つの管理ノードで構成される 5 ノードクラスタがあると仮定します。
ndb_mgm> SHOW
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=1 @10.100.10.1 (8.0.23-ndb-8.0.23, Nodegroup: 0, *)
id=2 @10.100.10.2 (8.0.23-ndb-8.0.23, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=10 @10.100.10.10 (8.0.23-ndb-8.0.23)
[mysqld(API)] 2 node(s)
id=20 @10.100.10.20 (8.0.23-ndb-8.0.23)
id=21 @10.100.10.21 (8.0.23-ndb-8.0.23)
すべてのデータノードが実行されていると仮定すると、次に示すように、transporters テーブルには 10 行 (1 番目のデータノード用に 5 行、2 番目のデータノード用に 5 行) が表示されます。
mysql> SELECT node_id, remote_node_id, status
-> FROM ndbinfo.transporters;
+---------+----------------+---------------+
| node_id | remote_node_id | status |
+---------+----------------+---------------+
| 1 | 1 | DISCONNECTED |
| 1 | 2 | CONNECTED |
| 1 | 10 | CONNECTED |
| 1 | 20 | CONNECTED |
| 1 | 21 | CONNECTED |
| 2 | 1 | CONNECTED |
| 2 | 2 | DISCONNECTED |
| 2 | 10 | CONNECTED |
| 2 | 20 | CONNECTED |
| 2 | 21 | CONNECTED |
+---------+----------------+---------------+
10 rows in set (0.04 sec)
ndb_mgm クライアントで 2 STOP コマンドを使用して、このクラスタ内のデータノードのいずれかをシャットダウンしてから、(再度 mysql クライアントを使用して) 前のクエリーを繰り返すと、次に示すように、このテーブルには、5 行 (残りの管理ノードから別のノードへの接続 (そのデータノード自体と現在オフラインになっているデータノードの両方を含む) ごとに 1 行) のみが表示され、現在オフラインになっているデータノードへの残りの各接続のステータスを表す CONNECTING が表示されます。
mysql> SELECT node_id, remote_node_id, status
-> FROM ndbinfo.transporters;
+---------+----------------+---------------+
| node_id | remote_node_id | status |
+---------+----------------+---------------+
| 1 | 1 | DISCONNECTED |
| 1 | 2 | CONNECTING |
| 1 | 10 | CONNECTED |
| 1 | 20 | CONNECTED |
| 1 | 21 | CONNECTED |
+---------+----------------+---------------+
5 rows in set (0.02 sec)
connect_count, overloaded, overload_count, slowdown および slowdown_count カウンタは接続時にリセットされ、リモートノードが切断された後も値が保持されます。 bytes_sent および bytes_received カウンタも接続時にリセットされるため、切断後も値は保持されます (次の接続がリセットされるまで)。
overloaded カラムおよび overload_count カラムで参照される過負荷の状態は、このトランスポータの送信バッファに OVerloadLimit バイトを超える値が含まれている場合に発生します (デフォルトは SendBufferMemory の 80%、つまり 0.8 * 2097152 = 1677721 バイト)。 特定のトランスポータが過負荷状態にある場合、このトランスポータを使用しようとする新しいトランザクションはエラー 1218 (「NDB カーネルでオーバーロードされたバッファーの送信」) で失敗します。 これは、スキャンと主キー操作の両方に影響します。
このテーブルの slowdown カラムおよび slowdown_count カラムによって参照される低速の状態は、トランスポータの送信バッファにオーバーロード制限の 60% を超える値が含まれている場合に発生します (デフォルトでは 0.6*2097152 = 1258291 バイトと等しくなります)。 この状態では、このトランスポータを使用する新しいスキャンのバッチサイズが小さくなり、トランスポータの負荷が最小限に抑えられます。
送信バッファの速度低下またはオーバーロードの一般的な原因は、次のとおりです:
データサイズ。特に、
TEXTカラムまたはBLOBカラム (あるいはその両方のタイプのカラム) に格納されるデータの量バイナリロギングに関与する SQL ノードと同じホスト上にデータノード (ndbd または ndbmtd) がある
トランザクションまたはトランザクションバッチ当たりの多数の行
SendBufferMemoryの不足などの構成の問題RAM 不足やネットワーク接続の低下などのハードウェアの問題