MySQL 8.0 リファレンスマニュアル


23.5.14.55 ndbinfo transporters テーブル

このテーブルには、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 カラムに示されます。このカラムは、CONNECTINGCONNECTEDDISCONNECTING、または 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 不足やネットワーク接続の低下などのハードウェアの問題

セクション23.3.3.14「NDB Cluster 送信バッファーパラメータの構成」も参照してください。


関連キーワード:  NDB, テーブル, ndbinfo, ノード, ndb, データ, 接続, 構成, node, 管理