Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
2.4.11
-
None
Description
We don't need to necessarily rewrite ReplicationSink to work fully async. I think it would simply benefit from ConnectionFactory.createAsyncConnection instead of ConnectionFactory.createConnection.
The reasons for this are:
- AsyncConnection is the more modern implementation, the only implementation in master, and where most of the efforts will be going forward.
- ReplicationSink only does batch calls, and batch calls are done with AsyncProcess. It's likely that the native AsyncTable is better than AsyncProcess for this.
- One specific example, AsyncProcess calls findAllLocationsOrFail sequentially for all actions in a batch. This can take quite a while with the default replication batch size of 5k, if actions are spread across many regions. In AsyncTable, these calls are done in parallel