View Issue Details

IDProjectCategoryView StatusLast Update
0004044SymmetricDSImprovementpublic2019-08-23 12:46
ReporterelongAssigned Toelong 
Prioritynormal 
Status closedResolutionfixed 
Product Version3.7.0 
Target Version3.10.4Fixed in Version3.10.4 
Summary0004044: Potential bottleneck from thread locking during initial load with multiple clients
DescriptionWhen loading multiple client nodes at the same, it was observed that many threads were waiting on a synchronized block in the extension service. The initial load extract is checking each row from the table with the router service to see if the row does need to be sent to the target node. Each call is looking up routers from the extension service. So, it seems to be the slowest part of the loop, but not necessarily slowing things down noticeably. However, let's optimize this section of code since it appears to be a hot spot.

org.jumpmind.symmetric.service.impl.ExtensionService.getExtensionPointMap():240
org.jumpmind.symmetric.service.impl.RouterService.getRouters():1163
org.jumpmind.symmetric.service.impl.RouterService.getDataRouter():1100
org.jumpmind.symmetric.service.impl.RouterService.shouldDataBeRouted():160
org.jumpmind.symmetric.service.impl.DataExtractorService$SelectFromTableSource.next():2151
org.jumpmind.symmetric.service.impl.DataExtractorService$SelectFromSymDataSource.next():1900
org.jumpmind.symmetric.io.data.reader.ExtractDataReader.nextData():133
org.jumpmind.symmetric.io.data.DataProcessor.forEachDataInTable():191
org.jumpmind.symmetric.io.data.DataProcessor.forEachTableInBatch():170
org.jumpmind.symmetric.io.data.DataProcessor.process():116
org.jumpmind.symmetric.service.impl.DataExtractorService.extractOutgoingBatch():894
org.jumpmind.symmetric.service.impl.DataExtractorService.execute():1666
org.jumpmind.symmetric.service.impl.NodeCommunicationService$1.run():519
java.util.concurrent.ThreadPoolExecutor.runWorker():1149
java.util.concurrent.ThreadPoolExecutor$Worker.run():624
java.lang.Thread.run():748
TagsNo tags attached.

Activities

There are no notes attached to this issue.

Related Changesets

SymmetricDS: 3.10 f38acabb

2019-07-15 16:14:06

admin

Details Diff
0004044: Potential bottleneck from thread locking during initial load
with multiple clients

0004044
mod - symmetric-core/src/main/java/org/jumpmind/symmetric/service/impl/DataExtractorService.java Diff File

Issue History

Date Modified Username Field Change
2019-07-15 16:10 elong New Issue
2019-07-15 16:10 elong Status new => assigned
2019-07-15 16:10 elong Assigned To => elong
2019-07-15 16:14 elong Status assigned => resolved
2019-07-15 16:14 elong Resolution open => fixed
2019-07-15 16:14 elong Fixed in Version => 3.10.4
2019-07-15 17:00 admin Changeset attached => SymmetricDS 3.10 f38acabb
2019-08-23 12:46 admin Status resolved => closed