View Issue Details

IDProjectCategoryView StatusLast Update
0005210SymmetricDSImprovementpublic2022-02-03 21:00
Reporterelong Assigned Toelong  
Prioritynormal 
Status resolvedResolutionfixed 
Product Version3.14.0 
Target Version3.14.0Fixed in Version3.14.0 
Summary0005210: Routing reader may use multiple queries for a large number of gaps
DescriptionModify routing reader so it may use multiple queries on sym_data, looking for data in all the gaps that have accumulated. When multiple channels are involved, a disabled channel or a busy system can cause a large number of gaps. Control this new behavior with parameter routing.data.reader.use.multiple.queries and default it to true.

Background: Currently, the routing.max.gaps.to.qualify.in.sql is set to 100, which is the most gaps that can be qualified in the routing query. For the current method of reading, when max gaps is reached, it merges the first and last of the remaining gaps to bring back more data than needed, and then filters through it in memory by matching against gaps. This method wastes time reading data it doesn't need, and the merged gap in the query may be so large that the index isn't used.

Tagsperformance, routing

Activities

There are no notes attached to this issue.

Related Changesets

SymmetricDS: 3.14 c2ec7206

2022-02-03 20:58:27

admin

Details Diff
0005210: Routing reader may use multiple queries for a large number of
gaps
Affected Issues
0005210
mod - symmetric-core/src/main/java/org/jumpmind/symmetric/common/ParameterConstants.java Diff File
add - symmetric-core/src/main/java/org/jumpmind/symmetric/route/AbstractDataGapRouteCursor.java Diff File
add - symmetric-core/src/main/java/org/jumpmind/symmetric/route/DataGapRouteCursor.java Diff File
add - symmetric-core/src/main/java/org/jumpmind/symmetric/route/DataGapRouteMultiCursor.java Diff File
mod - symmetric-core/src/main/java/org/jumpmind/symmetric/route/DataGapRouteReader.java Diff File
add - symmetric-core/src/main/java/org/jumpmind/symmetric/route/IDataGapRouteCursor.java Diff File
mod - symmetric-core/src/main/resources/symmetric-default.properties Diff File
add - symmetric-core/src/test/java/org/jumpmind/symmetric/route/DataGapRouteCursorTest.java Diff File
mod - symmetric-core/src/test/java/org/jumpmind/symmetric/route/DataGapRouteReaderTest.java Diff File
add - symmetric-core/src/test/java/org/jumpmind/symmetric/route/ListReadCursor.java Diff File

Issue History

Date Modified Username Field Change
2022-02-03 20:53 elong New Issue
2022-02-03 20:53 elong Status new => assigned
2022-02-03 20:53 elong Assigned To => elong
2022-02-03 20:53 elong Tag Attached: performance
2022-02-03 20:53 elong Tag Attached: routing
2022-02-03 20:59 elong Status assigned => resolved
2022-02-03 20:59 elong Resolution open => fixed
2022-02-03 20:59 elong Fixed in Version => 3.14.0
2022-02-03 21:00 admin Changeset attached => SymmetricDS 3.14 c2ec7206