# [FAQ] TiDB-binlog 同步到下游数据一致性的解释

## Key Words

TiDB-binlog, Read Committed, Repeatable Read

## Description

1. 在 TiDB-binlog 将 TiDB 同步到 Aurora 是否，下游如果使用 RC (Read committed) 事务模式会不会影响 Drainer 同步的数据一致性问题？

2. Drainer 如何保证同步数据的一致性情况？

## Content

1. 下游如果使用 RC (Read-committed) 事务模式，不影响下游的数据一致性。 因为原始事务被 Drainer 拆分并设置了多工作线程来进行批处理。 无论下游事务模式是 RR 还是 RC，drainer 处理一行，不会在一个事务中重复消费，这意味着它不会导致数据不一致。 Drainer 最终保证了数据的一致性。

2. 在 Drainer 上配置了多个 worker，用于拆分事务并设置批处理作业以提高同步速度。 这意味着 Drainer 无法维护上游事务顺序。 参考文档是 [Drainer 逻辑](https://www.pingcap.com/blog/tidb-binlog-architecture-evolution-and-implementation-principles/?from=en)。

如果要保留事务的顺序，将“disable-dispatch”设置为 true 的唯一方法是这样就不会发生乱序和并行写入。 但是这个选项会损害吞吐量。

## Affected Versions

N/A