Skip to content

Data inconsistency when tpcc check #39266

Closed
@lilinghai

Description

Bug Report

Please answer these questions before submitting your issue. Thanks!

1. Minimal reproduce step (Required)

tpcc 100 warehouse data prepare, set tiflash replica , run some time. Then run the follow sql

SELECT
    T.o_ol_cnt,T.order_line_count
FROM
    (
        SELECT
            o_ol_cnt,
            order_line_count
        FROM
            orders
            LEFT JOIN (
                SELECT
                    ol_w_id,
                    ol_d_id,
                    ol_o_id,
                    count(*) order_line_count
                FROM
                    order_line
                GROUP BY
                    ol_w_id,
                    ol_d_id,
                    ol_o_id
                ORDER by
                    ol_w_id,
                    ol_d_id,
                    ol_o_id
            ) AS order_line ON orders.o_w_id = order_line.ol_w_id
            AND orders.o_d_id = order_line.ol_d_id
            AND orders.o_id = order_line.ol_o_id
        WHERE
            orders.o_w_id = 7
    ) AS T
WHERE
    T.o_ol_cnt != T.order_line_count

The plan is

explain analyze SELECT T.o_ol_cnt,T.order_line_count FROM (SELECT o_ol_cnt, order_line_count FROM orders LEFT JOIN (SELECT ol_w_id, ol_d_id, ol_o_id, count(*) order_line_count FROM order_line GROUP BY ol_w_id, ol_d_id, ol_o_id ORDER by ol_w_id, ol_d_id, ol_o_id) AS order_line ON orders.o_w_id = order_line.ol_w_id AND orders.o_d_id = order_line.ol_d_id AND orders.o_id = order_line.ol_o_id WHERE orders.o_w_id = 7) AS T WHERE T.o_ol_cnt != T.order_line_count;
+---------------------------------+-----------+---------+--------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+------+
| id                              | estRows   | actRows | task         | access object    | execution info                                                                                                                                                                                                                                                                                                        | operator info                                                                                                                                                                                                                                                                                                               | memory   | disk |
+---------------------------------+-----------+---------+--------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+------+
| IndexJoin_21                    | 31121.95  | 2       | root         |                  | time:1.09s, loops:2, inner:{total:2.49s, concurrency:5, task:9, construct:54.1ms, fetch:2.43s, build:9.55ms}, probe:40.2ms                                                                                                                                                                                            | inner join, inner:TableReader_17, outer key:tpcc.order_line.ol_d_id, tpcc.order_line.ol_o_id, inner key:tpcc.orders.o_d_id, tpcc.orders.o_id, equal cond:eq(tpcc.order_line.ol_d_id, tpcc.orders.o_d_id), eq(tpcc.order_line.ol_o_id, tpcc.orders.o_id), other cond:ne(tpcc.orders.o_ol_cnt, Column#19)                     | 8.13 MB  | N/A  |
| ├─StreamAgg_92(Build)           | 31.12     | 31257   | root         |                  | time:75.8ms, loops:36                                                                                                                                                                                                                                                                                                 | group by:tpcc.order_line.ol_d_id, tpcc.order_line.ol_o_id, tpcc.order_line.ol_w_id, funcs:count(Column#44)->Column#19, funcs:firstrow(tpcc.order_line.ol_o_id)->tpcc.order_line.ol_o_id, funcs:firstrow(tpcc.order_line.ol_d_id)->tpcc.order_line.ol_d_id, funcs:firstrow(tpcc.order_line.ol_w_id)->tpcc.order_line.ol_w_id | 33.1 KB  | N/A  |
| │ └─TableReader_93              | 31.12     | 31257   | root         |                  | time:53.4ms, loops:33, cop_task: {num: 2, max: 53.2ms, min: 30.5ms, avg: 41.9ms, p95: 53.2ms, rpc_num: 2, rpc_time: 83.7ms, copr_cache_hit_ratio: 0.00, distsql_concurrency: 15}                                                                                                                                      | data:StreamAgg_88                                                                                                                                                                                                                                                                                                           | 978.5 KB | N/A  |
| │   └─StreamAgg_88              | 31.12     | 31257   | cop[tiflash] |                  | tiflash_task:{proc max:49.7ms, min:28.7ms, avg: 39.2ms, p80:49.7ms, p95:49.7ms, iters:2, tasks:2, threads:2}                                                                                                                                                                                                          | group by:tpcc.order_line.ol_d_id, tpcc.order_line.ol_o_id, tpcc.order_line.ol_w_id, funcs:count(1)->Column#44                                                                                                                                                                                                               | N/A      | N/A  |
| │     └─TableRangeScan_79       | 311221.15 | 312602  | cop[tiflash] | table:order_line | tiflash_task:{proc max:45.7ms, min:25.7ms, avg: 35.7ms, p80:45.7ms, p95:45.7ms, iters:6, tasks:2, threads:2}                                                                                                                                                                                                          | range:[7,7], keep order:true                                                                                                                                                                                                                                                                                                | N/A      | N/A  |
| └─TableReader_17(Probe)         | 0.31      | 31256   | root         |                  | time:2.38s, loops:46, cop_task: {num: 31, max: 181.6ms, min: 1.03ms, avg: 76.3ms, p95: 181.5ms, max_proc_keys: 5088, p95_proc_keys: 3096, tot_proc: 1.96s, tot_wait: 23ms, rpc_num: 31, rpc_time: 2.37s, copr_cache_hit_ratio: 0.26, distsql_concurrency: 15}                                                         | data:Selection_16                                                                                                                                                                                                                                                                                                           | N/A      | N/A  |
|   └─Selection_16                | 0.31      | 31256   | cop[tikv]    |                  | tikv_task:{proc max:166ms, min:4ms, avg: 69.6ms, p80:129ms, p95:164ms, iters:139, tasks:31}, scan_detail: {total_process_keys: 29464, total_process_keys_size: 2291461, total_keys: 59882, get_snapshot_time: 1.03ms, rocksdb: {delete_skipped_count: 8, key_skipped_count: 30409, block: {cache_hit_count: 265363}}} | eq(tpcc.orders.o_w_id, 7), not(isnull(tpcc.orders.o_ol_cnt))                                                                                                                                                                                                                                                                | N/A      | N/A  |
|     └─TableRangeScan_15         | 31.12     | 31256   | cop[tikv]    | table:orders     | tikv_task:{proc max:165ms, min:4ms, avg: 69.5ms, p80:129ms, p95:164ms, iters:139, tasks:31}                                                                                                                                                                                                                           | range: decided by [eq(tpcc.orders.o_d_id, tpcc.order_line.ol_d_id) eq(tpcc.orders.o_id, tpcc.order_line.ol_o_id) eq(tpcc.orders.o_w_id, 7)], keep order:false                                                                                                                                                               | N/A      | N/A  |
+---------------------------------+-----------+---------+--------------+------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+------+
8 rows in set (1.18 sec)

2. What did you expect to see? (Required)

empty set

3. What did you see instead (Required)

+----------+------------------+
| o_ol_cnt | order_line_count |
+----------+------------------+
|        8 |                7 |
|        8 |                1 |
+----------+------------------+

4. What is your TiDB version? (Required)

Release Version: v6.5.0-alpha
Edition: Community
Git Commit Hash: 3bcd5a8
Git Branch: heads/refs/tags/v6.5.0-alpha
UTC Build Time: 2022-11-19 11:13:51
GoVersion: go1.19.2
Race Enabled: false
TiKV Min Version: 6.2.0-alpha
Check Table Before Drop: false
Store: tikv

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions