#### 23.6.14.60 The ndbinfo tc\_time\_track\_stats Table

[]()

 The `tc_time_track_stats` table provides time-tracking information obtained from the [`DBTC`](https://dev.mysql.com/doc/ndb-internals/en/ndb-internals-kernel-blocks-dbtc.html) block (TC) instances in the data nodes, through API nodes access `NDB`. Each TC instance tracks latencies for a set of activities it undertakes on behalf of API nodes or other data nodes; these activities include transactions, transaction errors, key reads, key writes, unique index operations, failed key operations of any type, scans, failed scans, fragment scans, and failed fragment scans.

 A set of counters is maintained for each activity, each counter covering a range of latencies less than or equal to an upper bound. At the conclusion of each activity, its latency is determined and the appropriate counter incremented. `tc_time_track_stats` presents this information as rows, with a row for each instance of the following:

* Data node, using its ID

* TC block instance

* Other communicating data node or API node, using its ID

* Upper bound value

 Each row contains a value for each activity type. This is the number of times that this activity occurred with a latency within the range specified by the row (that is, where the latency does not exceed the upper bound).

 The `tc_time_track_stats` table contains the following columns:

* `node_id`

   Requesting node ID

* `block_number`

   TC block number

* `block_instance`

   TC block instance number

* `comm_node_id`

   Node ID of communicating API or data node

* `upper_bound`

   Upper bound of interval (in microseconds)

* `scans`

   Based on duration of successful scans from opening to closing, tracked against the API or data nodes requesting them.

* `scan_errors`

   Based on duration of failed scans from opening to closing, tracked against the API or data nodes requesting them.

* `scan_fragments`

   Based on duration of successful fragment scans from opening to closing, tracked against the data nodes executing them

* `scan_fragment_errors`

   Based on duration of failed fragment scans from opening to closing, tracked against the data nodes executing them

* `transactions`

   Based on duration of successful transactions from beginning until sending of commit `ACK`, tracked against the API or data nodes requesting them. Stateless transactions are not included.

* `transaction_errors`

   Based on duration of failing transactions from start to point of failure, tracked against the API or data nodes requesting them.

* `read_key_ops`

   Based on duration of successful primary key reads with locks. Tracked against both the API or data node requesting them and the data node executing them.

* `write_key_ops`

   Based on duration of successful primary key writes, tracked against both the API or data node requesting them and the data node executing them.

* `index_key_ops`

   Based on duration of successful unique index key operations, tracked against both the API or data node requesting them and the data node executing reads of base tables.

* `key_op_errors`

   Based on duration of all unsuccessful key read or write operations, tracked against both the API or data node requesting them and the data node executing them.

##### Notes

 The `block_instance` column provides the [`DBTC`](https://dev.mysql.com/doc/ndb-internals/en/ndb-internals-kernel-blocks-dbtc.html) kernel block instance number. You can use this together with the block name to obtain information about specific threads from the [`threadblocks`](mysql-cluster-ndbinfo-threadblocks.html) table.

